Skip to content

Commit

Permalink
Merge branch 'kubesphere:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
zhou1203 authored Oct 26, 2023
2 parents 15f5297 + 5c68510 commit a3c50a9
Show file tree
Hide file tree
Showing 50 changed files with 7,555 additions and 2,021 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ the [Release Notes For 3.4.0](https://kubesphere.io/docs/release/release-v340/)
| Alerting | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Auditing | v0.2.0 | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Monitoring | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| DevOps | v3.4.0 | 1.21,1.22,1.23 |
| DevOps | v3.4.0 | 1.21,1.22,1.23,1.24,1.25,1.26 |
| EdgeRuntime | v1.13.0 | 1.21,1.22,1.23 |
| Events | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Logging | opensearch:v2.6.0<br/>fluentbit-operator: v0.14.0<br/> fluent-bit-tag: v1.9.4 | 1.21,1.22,1.23,1.24,1.25,1.26 |
Expand Down
2 changes: 1 addition & 1 deletion README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ KubeSphere 使用前后端分离的架构,将 [前端](https://github.com/kube
| Alerting | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Auditing | v0.2.0 | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Monitoring | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| DevOps | v3.4.0 | 1.21,1.22,1.23 |
| DevOps | v3.4.0 | 1.21,1.22,1.23,1.24,1.25,1.26 |
| EdgeRuntime | v1.13.0 | 1.21,1.22,1.23 |
| Events | N/A | 1.21,1.22,1.23,1.24,1.25,1.26 |
| Logging | opensearch:v2.6.0<br/>fluentbit-operator: v0.14.0<br/> fluent-bit-tag: v1.9.4 | 1.21,1.22,1.23,1.24,1.25,1.26 |
Expand Down
8 changes: 7 additions & 1 deletion cmd/controller-manager/app/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import (
"kubesphere.io/kubesphere/pkg/controller/cluster"
"kubesphere.io/kubesphere/pkg/controller/network/webhooks"
"kubesphere.io/kubesphere/pkg/controller/quota"
storagewebhooks "kubesphere.io/kubesphere/pkg/controller/storage/webhooks"
"kubesphere.io/kubesphere/pkg/controller/user"
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
Expand Down Expand Up @@ -234,7 +235,12 @@ func run(s *options.KubeSphereControllerManagerOptions, ctx context.Context) err
hookServer.Register("/validate-email-iam-kubesphere-io-v1alpha2", &webhook.Admission{Handler: &user.EmailValidator{Client: mgr.GetClient()}})
hookServer.Register("/validate-network-kubesphere-io-v1alpha1", &webhook.Admission{Handler: &webhooks.ValidatingHandler{C: mgr.GetClient()}})
hookServer.Register("/mutate-network-kubesphere-io-v1alpha1", &webhook.Admission{Handler: &webhooks.MutatingHandler{C: mgr.GetClient()}})
hookServer.Register("/persistentvolumeclaims", &webhook.Admission{Handler: &webhooks.AccessorHandler{C: mgr.GetClient()}})

pvcAdmission, err := storagewebhooks.NewAccessorHandler()
if err != nil {
klog.Fatalf("unable to create pvc admission: %v", err)
}
hookServer.Register("/persistentvolumeclaims", &webhook.Admission{Handler: pvcAdmission})

resourceQuotaAdmission, err := quota.NewResourceQuotaAdmission(mgr.GetClient(), mgr.GetScheme())
if err != nil {
Expand Down
19 changes: 10 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ require (
github.com/elastic/go-elasticsearch/v6 v6.8.2
github.com/elastic/go-elasticsearch/v7 v7.3.0
github.com/emicklei/go-restful-openapi/v2 v2.9.1
github.com/emicklei/go-restful/v3 v3.10.2
github.com/emicklei/go-restful/v3 v3.11.0
github.com/evanphx/json-patch v5.6.0+incompatible
github.com/fatih/structs v1.1.0
github.com/fsnotify/fsnotify v1.6.0
Expand All @@ -49,7 +49,7 @@ require (
github.com/kubernetes-csi/external-snapshotter/client/v4 v4.2.0
github.com/kubesphere/pvc-autoresizer v0.3.1
github.com/kubesphere/sonargo v0.0.2
github.com/kubesphere/storageclass-accessor v0.2.2
github.com/kubesphere/storageclass-accessor v0.2.4-0.20230919084454-2f39c69db301
github.com/mitchellh/mapstructure v1.5.0
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852
github.com/onsi/ginkgo v1.16.5
Expand All @@ -74,7 +74,7 @@ require (
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.13.0
github.com/stretchr/testify v1.8.1
golang.org/x/crypto v0.5.0
golang.org/x/crypto v0.14.0
golang.org/x/oauth2 v0.4.0
google.golang.org/grpc v1.53.0
gopkg.in/cas.v2 v2.2.0
Expand Down Expand Up @@ -273,11 +273,11 @@ require (
go.uber.org/zap v1.24.0 // indirect
golang.org/x/exp v0.0.0-20230124195608-d38c7dcee874 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/term v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/term v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.6.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
Expand Down Expand Up @@ -338,7 +338,7 @@ replace (
github.com/elastic/go-elasticsearch/v6 => github.com/elastic/go-elasticsearch/v6 v6.8.2
github.com/elastic/go-elasticsearch/v7 => github.com/elastic/go-elasticsearch/v7 v7.3.0
github.com/emicklei/go-restful-openapi/v2 => github.com/emicklei/go-restful-openapi/v2 v2.9.2-0.20230507070325-d6acc08e570c
github.com/emicklei/go-restful/v3 => github.com/emicklei/go-restful/v3 v3.10.2
github.com/emicklei/go-restful/v3 => github.com/emicklei/go-restful/v3 v3.11.0
github.com/emirpasic/gods => github.com/emirpasic/gods v1.12.0
github.com/evanphx/json-patch => github.com/evanphx/json-patch v5.6.0+incompatible
github.com/evanphx/json-patch/v5 => github.com/evanphx/json-patch/v5 v5.6.0
Expand Down Expand Up @@ -407,6 +407,7 @@ replace (
github.com/kubernetes-csi/external-snapshotter/client/v4 => github.com/kubernetes-csi/external-snapshotter/client/v4 v4.2.0
github.com/kubesphere/pvc-autoresizer => github.com/kubesphere/pvc-autoresizer v0.3.0
github.com/kubesphere/sonargo => github.com/kubesphere/sonargo v0.0.2
github.com/kubesphere/storageclass-accessor => github.com/kubesphere/storageclass-accessor v0.2.4-0.20230919084454-2f39c69db301
github.com/lann/builder => github.com/lann/builder v0.0.0-20180802200727-47ae307949d0
github.com/lann/ps => github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0
github.com/lib/pq => github.com/lib/pq v1.10.7
Expand Down Expand Up @@ -491,7 +492,7 @@ replace (
go.uber.org/atomic => go.uber.org/atomic v1.10.0
go.uber.org/goleak => go.uber.org/goleak v1.2.0
golang.org/x/crypto => golang.org/x/crypto v0.5.0
golang.org/x/net => golang.org/x/net v0.7.0
golang.org/x/net => golang.org/x/net v0.17.0
golang.org/x/oauth2 => golang.org/x/oauth2 v0.4.0
golang.org/x/sync => golang.org/x/sync v0.1.0
golang.org/x/sys => golang.org/x/sys v0.5.0
Expand Down
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -504,8 +504,8 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
github.com/emicklei/go-restful v2.11.2-0.20200112161605-a7c079c43d51+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful-openapi/v2 v2.9.2-0.20230507070325-d6acc08e570c h1:Fr2oTQtTLMbCXMdhUnnsrDVRTPauJLFYHtNtcc/RSL0=
github.com/emicklei/go-restful-openapi/v2 v2.9.2-0.20230507070325-d6acc08e570c/go.mod h1:I//7paNAkpeGWmBYZ2JLq/timz5YWI/bcUeBMstEfKo=
github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE=
github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
Expand Down Expand Up @@ -898,8 +898,8 @@ github.com/kubesphere/pvc-autoresizer v0.3.0 h1:1abWUF6xo2zlMlfeRsuafFzXo9e1grS+
github.com/kubesphere/pvc-autoresizer v0.3.0/go.mod h1:wJrZLkbSx7A8zV3/TZirebFlxJ/eh+jJ9x5UidWx3HI=
github.com/kubesphere/sonargo v0.0.2 h1:hsSRE3sv3mkPcUAeSABdp7rtfcNW2zzeHXzFa01CTkU=
github.com/kubesphere/sonargo v0.0.2/go.mod h1:ww8n9ANlDXhX5PBZ18iaRnCgEkXN0GMml3/KZXOZ11w=
github.com/kubesphere/storageclass-accessor v0.2.2 h1:FzKRQwwOYYwccZyG6z3ENFiONWAQ03d6SGs7H9N6gfI=
github.com/kubesphere/storageclass-accessor v0.2.2/go.mod h1:jqZ3tCiw09yOiPkZ3rDmf6QIpbZJx55McnyRaS0ayCY=
github.com/kubesphere/storageclass-accessor v0.2.4-0.20230919084454-2f39c69db301 h1:7eSmr1FVuVYqg3q9Yay1O/1MHjL1hLGiIvq1tuX/zQU=
github.com/kubesphere/storageclass-accessor v0.2.4-0.20230919084454-2f39c69db301/go.mod h1:wkmSo5pKxtsF11yW5cdW90hKoYhkBb0czaeGfJnsvR8=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
Expand Down Expand Up @@ -1396,8 +1396,8 @@ golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// Package webhooks
// Copyright 2022 The KubeSphere Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -18,13 +19,23 @@ import (

accessor "github.com/kubesphere/storageclass-accessor/webhook"
v1 "k8s.io/api/admission/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

type AccessorHandler struct {
C client.Client
decoder *admission.Decoder
admitter *accessor.Admitter
decoder *admission.Decoder
}

func NewAccessorHandler() (*AccessorHandler, error) {
admitter, err := accessor.NewAdmitter()
if err != nil {
return nil, err
}
handler := &AccessorHandler{
admitter: admitter,
}
return handler, nil
}

func (h *AccessorHandler) InjectDecoder(d *admission.Decoder) error {
Expand All @@ -36,7 +47,7 @@ func (h *AccessorHandler) Handle(ctx context.Context, req admission.Request) adm
review := v1.AdmissionReview{
Request: &req.AdmissionRequest,
}
resp := accessor.AdmitPVC(review)
resp := h.admitter.AdmitPVC(review)
return admission.Response{
AdmissionResponse: *resp,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/models/gateway/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ import (
)

const (
MasterLabel = "node-role.kubernetes.io/master"
MasterLabel = "node-role.kubernetes.io/control-plane"
SidecarInject = "sidecar.istio.io/inject"
gatewayPrefix = "kubesphere-router-"
workingNamespace = "kubesphere-controls-system"
Expand Down
7 changes: 7 additions & 0 deletions pkg/models/openpitrix/applications.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,12 @@ func (c *applicationOperator) ModifyApp(appId string, request *ModifyAppRequest)
return err
}

_, err = c.appClient.UpdateStatus(context.TODO(), appCopy, metav1.UpdateOptions{})
if err != nil {
klog.Errorf("update helm application status: %s failed, error: %s", appId, err)
return err
}

_, err = c.appClient.Patch(context.TODO(), appId, patch.Type(), data, metav1.PatchOptions{})
if err != nil {
klog.Errorf("patch helm application: %s failed, error: %s", appId, err)
Expand All @@ -478,6 +484,7 @@ func (c *applicationOperator) ModifyApp(appId string, request *ModifyAppRequest)
}
return err
}

return nil
}

Expand Down
3 changes: 2 additions & 1 deletion pkg/models/openpitrix/applicationversions.go
Original file line number Diff line number Diff line change
Expand Up @@ -428,8 +428,9 @@ func (c *applicationOperator) DoAppVersionAction(versionId string, request *Acti
return err
}

if !reflect.DeepEqual(&app.Spec, &appInStore.Spec) {
if !reflect.DeepEqual(&app.Spec, &appInStore.Spec) || !reflect.DeepEqual(app.Labels[constants.CategoryIdLabelKey], appInStore.Labels[constants.CategoryIdLabelKey]) {
appCopy := appInStore.DeepCopy()
appCopy.Labels[constants.CategoryIdLabelKey] = app.Labels[constants.CategoryIdLabelKey]
appCopy.Spec = app.Spec
patch := client.MergeFrom(appInStore)
data, _ := patch.Data(appCopy)
Expand Down
12 changes: 12 additions & 0 deletions pkg/models/resources/v1alpha3/pod/pods.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ const (
fieldServiceName = "serviceName"
fieldPhase = "phase"
fieldStatus = "status"
fieldPodIP = "podIP"

statusTypeWaitting = "Waiting"
statusTypeRunning = "Running"
Expand Down Expand Up @@ -103,11 +104,22 @@ func (p *podsGetter) filter(object runtime.Object, filter query.Filter) bool {
return statusType == string(filter.Value)
case fieldPhase:
return string(pod.Status.Phase) == string(filter.Value)
case fieldPodIP:
return p.podWithIP(pod, string(filter.Value))
default:
return v1alpha3.DefaultObjectMetaFilter(pod.ObjectMeta, filter)
}
}

func (p *podsGetter) podWithIP(item *corev1.Pod, ipAddress string) bool {
for _, ip := range item.Status.PodIPs {
if strings.Contains(ip.String(), ipAddress) {
return true
}
}
return false
}

func (p *podsGetter) podBindPVC(item *corev1.Pod, pvcName string) bool {
for _, v := range item.Spec.Volumes {
if v.VolumeSource.PersistentVolumeClaim != nil &&
Expand Down
20 changes: 6 additions & 14 deletions pkg/utils/clusterclient/clusterclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,10 @@ type innerCluster struct {
}

type clusterClients struct {
sync.RWMutex
clusterLister clusterlister.ClusterLister

// build a in memory cluster cache to speed things up
innerClusters map[string]*innerCluster
// build an in memory cluster cache to speed things up
innerClusters sync.Map
}

type ClusterClients interface {
Expand All @@ -62,7 +61,6 @@ type ClusterClients interface {

func NewClusterClient(clusterInformer clusterinformer.ClusterInformer) ClusterClients {
c := &clusterClients{
innerClusters: make(map[string]*innerCluster),
clusterLister: clusterInformer.Lister(),
}

Expand All @@ -85,9 +83,7 @@ func NewClusterClient(clusterInformer clusterinformer.ClusterInformer) ClusterCl
func (c *clusterClients) removeCluster(obj interface{}) {
cluster := obj.(*clusterv1alpha1.Cluster)
klog.V(4).Infof("remove cluster %s", cluster.Name)
c.Lock()
delete(c.innerClusters, cluster.Name)
c.Unlock()
c.innerClusters.Delete(cluster.Name)
}

func newInnerCluster(cluster *clusterv1alpha1.Cluster) *innerCluster {
Expand Down Expand Up @@ -139,9 +135,7 @@ func (c *clusterClients) addCluster(obj interface{}) *innerCluster {
}

inner := newInnerCluster(cluster)
c.Lock()
c.innerClusters[cluster.Name] = inner
c.Unlock()
c.innerClusters.Store(cluster.Name, inner)
return inner
}

Expand All @@ -158,10 +152,8 @@ func (c *clusterClients) GetClusterKubeconfig(clusterName string) (string, error
}

func (c *clusterClients) GetInnerCluster(name string) *innerCluster {
c.RLock()
defer c.RUnlock()
if inner, ok := c.innerClusters[name]; ok {
return inner
if inner, ok := c.innerClusters.Load(name); ok {
return inner.(*innerCluster)
} else if cluster, err := c.clusterLister.Get(name); err == nil {
// double check if the cluster exists but is not cached
return c.addCluster(cluster)
Expand Down
15 changes: 9 additions & 6 deletions staging/src/kubesphere.io/api/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ require (
github.com/prometheus/common v0.39.0
github.com/prometheus/prometheus v0.42.0
github.com/robfig/cron/v3 v3.0.1
golang.org/x/net v0.7.0
golang.org/x/net v0.17.0
gopkg.in/yaml.v3 v3.0.1
istio.io/api v0.0.0-20201113182140-d4b7e3fc2b44
k8s.io/api v0.26.1
Expand All @@ -36,7 +36,7 @@ require (
github.com/docker/distribution v2.8.2+incompatible // indirect
github.com/docker/docker v20.10.24+incompatible // indirect
github.com/edsrzf/mmap-go v1.1.0 // indirect
github.com/emicklei/go-restful/v3 v3.10.2 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
Expand Down Expand Up @@ -85,14 +85,13 @@ require (
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/goleak v1.2.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
golang.org/x/crypto v0.5.0 // indirect
golang.org/x/exp v0.0.0-20230124195608-d38c7dcee874 // indirect
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
golang.org/x/oauth2 v0.4.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/term v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/term v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.6.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
Expand All @@ -113,5 +112,9 @@ require (
replace (
github.com/projectcalico/api => github.com/kubesphere/calico/api v0.0.0-20230227071013-a73515ddc939 // v3.25.0
github.com/projectcalico/calico => github.com/kubesphere/calico v0.0.0-20230227071013-a73515ddc939 // v3.25.0
golang.org/x/crypto => golang.org/x/crypto v0.5.0
golang.org/x/sys => golang.org/x/sys v0.5.0
golang.org/x/term => golang.org/x/term v0.5.0
golang.org/x/text => golang.org/x/text v0.7.0
kubesphere.io/api => ../api
)
Loading

0 comments on commit a3c50a9

Please sign in to comment.