Container Registry企業版(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