使用ACK One GitOps部署ACR EE OCI Helm Chart

容器镜像服务企业版(ACR EE)支持托管OCI制品,包括镜像、Helm Chart和自定义的OCI制品,您可以将Chart打包为OCI制品,使用该形式推送和拉取Chart。您还可以通过ACK One GitOps部署ACR EE OCI Helm Chart,方便在不同的环境中分发和部署Kubernetes应用。

前提条件

步骤一:将Helm Chart推送到ACR EE

本文通过echo-server示例,并在本地将Chart Version修改为0.1.1后推送至ACR EE。具体操作,请参见推送和拉取Helm Chart(该文档中使用tar命令打包,建议您使用helm package ****替代)。

步骤二:添加OCI仓库

执行以下命令,添加ACR EE OCI仓库至ACK One GitOps。

argocd repo add <myregistry.com> --type helm --name <自定义reponame> --enable-oci --username <username> --password <password>

示例代码如下:

argocd repo add demo***-registry.cn-hangzhou.cr.aliyuncs.com --type helm --name acr-oci --enable-oci --username ack***@test.aliyunid.com --password <password>

步骤三:部署应用

  1. 使用以下YAML示例代码,创建app-helm-dev-oci.yaml文件。

    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: app-helm-dev-oci
    spec:
      destination:
        namespace: app-helm-dev-oci
        # https://XX.XX.XX.XX:6443。
        server: <apiserver-url>
      source:
        # 例如demo***-registry.cn-hangzhou.cr.aliyuncs.com/test。
        repoURL: <registry-domain>/<namespace>
        # 例如0.1.1。
        targetRevision: <my-chart-version>
        # 例如echo-server。
        chart: <my-chart-name> 
        helm:
          passCredentials: true
          # 视具体情况指定,默认是values.yaml。
          valueFiles:
            - values-dev.yaml
      project: default
      syncPolicy:
        # 自动同步。
        automated: {}
        syncOptions:
          - CreateNamespace=true
  2. 执行以下命令,通过ArgoCD CLI部署应用。

    argocd app create -f app-helm-dev-oci.yaml