迁移ACR镜像监控配置

本文介绍如何将应用中心配置的ACR镜像监控配置迁移至ACK One GitOps。

索引

前提条件

步骤一:检查ACR镜像仓库配置和迁移ACR访问凭证

  1. 在应用中心主控集群中执行下列命令,查看ACR镜像仓库配置。

    kubectl -n appcenter get cm argocd-image-updater-config -oyaml
  2. 在ACK One主控实例中执行下列命令,查看ACR镜像仓库配置。

    kubectl -n argocd get cm argocd-image-updater-config -oyaml
  3. 检查应用中心和主控实例输出结果中data.registries.conf的配置是否一致。如不一致,请使用应用中心主控集群中的配置覆盖ACK One主控实例中的配置。

  4. 在应用中心主控集群中执行以下命令,获取ACR访问凭证。

    默认ACR访问凭证的Secret名称为acr,记录此处获取到的ACR访问凭证的用户名和密码,在后续步骤中使用。

     kubectl -n argocd get secret acr -o jsonpath='{.data.acr}' | base64 -d
  5. 在ACK One主控实例中执行以下命令,在argocd命名空间下创建名为acr的Secret资源。该Secret资源用于配置访问ACR镜像仓库的访问凭证。

    请替换以下命令行中<your_username><your_password>步骤4获取的ACR访问凭证的用户名和密码。

kubectl -n argocd apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: acr
type: Opaque
stringData:
  # 填写ACR访问凭证的用户名和密码。
  acr: <your_username>:<your_password>  
EOF

步骤二:迁移Git访问凭证

获取ACR镜像更新后,您需要将镜像更新提交到Git仓库中,因此需要拥有对Git写权限的访问凭证。

如果在迁移应用的Git仓库时,您已配置了用户名和密码或私钥证书,并拥有Git写权限,则可以跳过此步骤。否则,您需要将应用中心的Secret导出迁移至ACK One主控实例中,配置Git访问凭证。

  1. 在应用中心主控集群中执行以下命令,导出Secret信息。

    kubectl -n appcenter get secret git-creds -oyaml > git-creds.yaml
  2. 在应用中心主控集群中执行以下命令,将git-creds.yaml中的命名空间修改为argocd。

    sed -i .bak "s/namespace: appcenter/namespace: argocd/g" git-creds.yaml
  3. 在ACK One主控实例中,执行以下命令,将Secret迁移至ACK One主控实例。

    kubectl apply -f git-creds.yaml

步骤三:更新应用Application

您需要更新应用Application中的Annotation argocd-image-updater.argoproj.io/write-back-method,更新后示例如下。

metadata:
  annotations:
    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/git-creds