diff --git a/pkg/kubesphere/modules.go b/pkg/kubesphere/modules.go index 1ce40344..724ac8a9 100644 --- a/pkg/kubesphere/modules.go +++ b/pkg/kubesphere/modules.go @@ -122,12 +122,15 @@ func (d *DeployModule) Init() { func MirrorRepo(kubeConf *common.KubeConf) string { repo := kubeConf.Cluster.Registry.PrivateRegistry + namespaceOverride := kubeConf.Cluster.Registry.NamespaceOverride version := kubeConf.Cluster.KubeSphere.Version _, ok := kubesphere.CNSource[version] if ok && os.Getenv("KKZONE") == "cn" { if repo == "" { repo = "registry.cn-beijing.aliyuncs.com/kubesphereio" + } else if len(namespaceOverride) != 0 { + repo = fmt.Sprintf("%s/%s", repo, namespaceOverride) } else { repo = fmt.Sprintf("%s/kubesphere", repo) } @@ -146,6 +149,8 @@ func MirrorRepo(kubeConf *common.KubeConf) string { default: repo = "kubesphere" } + } else if len(namespaceOverride) != 0 { + repo = fmt.Sprintf("%s/%s", repo, namespaceOverride) } else { repo = fmt.Sprintf("%s/kubesphere", repo) } diff --git a/pkg/kubesphere/tasks.go b/pkg/kubesphere/tasks.go index 41fd30f6..a23eda41 100644 --- a/pkg/kubesphere/tasks.go +++ b/pkg/kubesphere/tasks.go @@ -103,6 +103,18 @@ func (s *Setup) Execute(runtime connector.Runtime) error { } } + if s.KubeConf.Cluster.Registry.NamespaceOverride != "" { + if _, err := runtime.GetRunner().SudoCmd( + fmt.Sprintf("sed -i '/namespace_override/s/\\:.*/\\: %s/g' %s", s.KubeConf.Cluster.Registry.NamespaceOverride, filePath), + false); err != nil { + return errors.Wrap(errors.WithStack(err), fmt.Sprintf("add namespace override: %s failed", s.KubeConf.Cluster.Registry.NamespaceOverride)) + } + } else { + if _, err := runtime.GetRunner().SudoCmd(fmt.Sprintf("sed -i '/namespace_override/d' %s", filePath), false); err != nil { + return errors.Wrap(errors.WithStack(err), fmt.Sprintf("remove namespace override failed")) + } + } + _, ok := kubesphere.CNSource[s.KubeConf.Cluster.KubeSphere.Version] if ok && (os.Getenv("KKZONE") == "cn" || s.KubeConf.Cluster.Registry.PrivateRegistry == "registry.cn-beijing.aliyuncs.com") { if _, err := runtime.GetRunner().SudoCmd( diff --git a/pkg/version/kubesphere/templates/cc_v321.go b/pkg/version/kubesphere/templates/cc_v321.go index f67dcfb1..2c116094 100644 --- a/pkg/version/kubesphere/templates/cc_v321.go +++ b/pkg/version/kubesphere/templates/cc_v321.go @@ -37,6 +37,7 @@ spec: authentication: jwtSecret: "" local_registry: "" + namespace_override: "" # dev_tag: "" etcd: monitoring: false