容器镜像服务企业版(ACR EE)支持托管OCI制品,包括镜像、Helm Chart和自定义的OCI制品,您可以将Chart打包为OCI制品,使用该形式推送和拉取Chart。您还可以通过ACK One GitOps部署ACR EE OCI Helm Chart,方便在不同的环境中分发和部署Kubernetes应用。
前提条件
已开启舰队管理功能。具体操作,请参见开启舰队管理功能。
已从ACK One控制台获取Fleet实例的KubeConfig,并通过kubectl连接至Fleet实例。
已通过ArgoCD下载安装最新版本的ArgoCD CLI。
步骤一:将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>
步骤三:部署应用
使用以下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
执行以下命令,通过ArgoCD CLI部署应用。
argocd app create -f app-helm-dev-oci.yaml
文档内容是否对您有帮助?