迁移自定义配置
应用中心的自定义配置包含目标集群、Git仓库、ArgoCD系统配置。本文介绍如何将应用中心的自定义配置迁移至ACK One GitOps。
索引
前提条件
已开启多集群管理功能。具体操作,请参见开启多集群管理。
已从ACK One控制台获取主控实例的KubeConfig,并通过kubectl连接至主控实例。
已在主控实例中开启GitOps功能,并通过ArgoCD CLI登录系统。具体操作,请参见在ACK One主控实例中开启GitOps。
已从容器服务管理控制台的应用中心页面获取待迁移的应用中心主控集群,并获取集群的KubeConfig,通过kubectl连接至应用中心主控集群。
步骤一:迁移目标集群
在应用中心主控集群中执行以下命令,查看应用中心所有关联的目标集群所对应的Secret信息。
kubectl -n appcenter get secret -l argocd.argoproj.io/secret-type=cluster
预期输出:
NAME TYPE DATA AGE cluster-172.17.XX.XX-XX Opaque 4 16d cluster-8.217.XX.XX-XX Opaque 4 16d
在应用中心主控集群中分别执行以下命令,查看每个Secret所对应的集群ID。
kubectl -n appcenter get secret cluster-172.17.XX.XX-XX -o json -o jsonpath="{.data.ACKClusterID}" | base64 -d
将每个Secret所对应的集群,依次添加关联到ACK One主控实例中。具体操作,请参见添加关联集群。
步骤二:迁移Git仓库
在应用中心主控集群中执行以下命令,查看应用中心已配置的所有Git仓库所对应的Secret信息。
kubectl -n appcenter get secret -l argocd.argoproj.io/secret-type=repository
预期输出:
NAME TYPE DATA AGE repo-1159**** Opaque 3 1d repo-1176**** Opaque 3 1d
在应用中心主控集群中执行以下命令,确认Git仓库的URL信息。
kubectl -n appcenter get secret repo-1159**** -o jsonpath="{.data.url}" | base64 -d
预期输出:
https://github.com/AliyunContainerService/gitops-demo.git
在应用中心主控集群中执行以下命令,将Git仓库的Secret导出到YAML文件中。
kubectl -n appcenter get secret repo-1159**** -oyaml > repo-1159****.yaml
在应用中心主控集群中执行以下命令,将YAML文件中应用中心的命名空间appcenter修改为ACK One GitOps的系统命名空间argocd。
sed -i "" "s/namespace: appcenter/namespace: argocd/g" repo-1159****.yaml
在ACK One主控实例中执行以下命令,导入Git仓库的Secret。
kubectl apply -f repo-1159****.yaml
步骤三:迁移系统配置
应用中心和ACK One GitOps基于开源ArgoCD托管实现,自定义配置通过配置ArgoCD ConfigMap实现。如果您之前在应用中心进行了自定义配置,迁移后,您可以在ACK One GitOps中做同样的自定义配置。
ACK One GitOps已配置了argocd-cm和argocd-rbac-cm。如需修改这两个ConfigMap,您可以增加新的自定义配置,请勿修改ACK One GitOps中这两个ConfigMap已有的配置信息。
您可以在应用中心主控集群中执行以下命令,查看应用中心的ConfigMap列表,用于在ACK One GitOps中做同样的配置。
kubectl get configmap -n appcenter
预期输出:
NAME DATA AGE
argocd-cm 2 16d
argocd-cmd-params-cm 4 16d
argocd-gpg-keys-cm 0 16d
argocd-image-updater-config 1 16d
argocd-image-updater-ssh-config 0 16d
argocd-rbac-cm 0 16d
argocd-ssh-known-hosts-cm 1 16d
argocd-tls-certs-cm 0 16d