Argo CD это слово используется для обозначения развертывания и управления. Kubernetes Инструменты с открытым исходным кодом для приложений. В этой статье рассказывается,как использовать Argo CD развертыватьиуправлять Helm Charts、Helmfiles и из Git склад Helm Charts。
первый,Нам нужно Развертывание компакт-диска Argo。существовать Развертывание компакт-диска Argo , вам необходимо убедиться, что включены некоторые конфигурации по умолчанию, в том числе:
Автоматическая синхронизация: синхронизирует ваше приложение с определениями в вашем репозитории Git.
Самовосстановление: автоматическое восстановление состояния приложения, чтобы оно соответствовало желаемому состоянию.
Вы можете использовать следующую команду компакт-диска Арго и настраиваем helmfiles Поддержка плагинов
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
cat <<EOF > values.yaml
global:
domain: argocd.onwalk.net
server:
service:
type: NodePort
nodePortHttp: 80
nodePortHttps: 443
servicePortHttp: 80
servicePortHttps: 443
servicePortHttpName: http
servicePortHttpsName: https
ingress:
enabled: false
ingressClassName: "nginx"
hostname: argocd.onwalk.net
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
tls: true
repoServer:
extraContainers:
- name: helmfile
image: ghcr.io/helmfile/helmfile:v0.157.0
# Entrypoint should be Argo CD lightweight CMP server i.e. argocd-cmp-server
command: ["/var/run/argocd/argocd-cmp-server"]
env:
- name: HELM_CACHE_HOME
value: /tmp/helm/cache
- name: HELM_CONFIG_HOME
value: /tmp/helm/config
- name: HELMFILE_CACHE_HOME
value: /tmp/helmfile/cache
- name: HELMFILE_TEMPDIR
value: /tmp/helmfile/tmp
securityContext:
runAsNonRoot: true
runAsUser: 999
volumeMounts:
- mountPath: /var/run/argocd
name: var-files
- mountPath: /home/argocd/cmp-server/plugins
name: plugins
# Register helmfile plugin into sidecar
- mountPath: /home/argocd/cmp-server/config/plugin.yaml
subPath: helmfile.yaml
name: argocd-cmp-cm
# Starting with v2.4, do NOT mount the same tmp volume as the repo-server container. The filesystem separation helps mitigate path traversal attacks.
- mountPath: /tmp
name: helmfile-tmp
volumes:
- name: argocd-cmp-cm
configMap:
name: argocd-cmp-cm
- name: helmfile-tmp
emptyDir: {}
configs:
cmp:
create: true
plugins:
helmfile:
allowConcurrency: true
discover:
fileName: helmfile.yaml
generate:
command:
- bash
- "-c"
- |
if [[ -v ENV_NAME ]]; then
helmfile -n "$ARGOCD_APP_NAMESPACE" -e $ENV_NAME template --include-crds -q
elif [[ -v ARGOCD_ENV_ENV_NAME ]]; then
helmfile -n "$ARGOCD_APP_NAMESPACE" -e "$ARGOCD_ENV_ENV_NAME" template --include-crds -q
else
helmfile -n "$ARGOCD_APP_NAMESPACE" template --include-crds -q
fi
lockRepo: false
EOF
helm upgrade --install argocd argo/argo-cd -n argocd -f values.yaml
Шаг 2: Используйте Argo CD развертывать Helm Charts
Чтобы использовать Argo CD развертывать Helm Диаграммы, вы можете создать Application ресурсы и указать Helm Chart путь, хранилище URL и целевой пересмотр. Например, чтобы развернуть имя под названием nginx из Helm Диаграмма, вы можете создать следующее Application ресурс:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mysql
namespace: argocd
spec:
project: default
source:
chart: mysql
repoURL: https://charts.onwalk.net
targetRevision: 9.21.2
helm:
releaseName: mysql
destination:
server: "https://kubernetes.default.svc"
namespace: itsm-dev-db
syncPolicy:
automated:
prune: true
selfHeal: true
хотетьразвертывать Файлы Helmfiles доступны по адресу Application ресурс, указанный в Helmfile путь, хранилище URL и целевой пересмотр. Например, чтобы развернуть имя под названием my-helmfiles из Helmfile, вы можете создать следующее Application ресурс:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: itsm
namespace: argocd
spec:
project: default
source:
path: helmfiles/itsm
repoURL: https://github.com/svc-design/gitops.git
targetRevision: main
destination:
server: 'https://kubernetes.default.svc'
namespace: itsm-dev
syncPolicy:
automated:
prune: true
selfHeal: true
хотетьразвертыватьот Git склад Helm Графики доступны по адресу Application ресурс, указанный в Helm Chart путь, хранилище URL и целевой пересмотр. Например, чтобы развернуть имя под названием my-chart из Helm Диаграмма, вы можете создать следующее Application ресурс:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: redis
namespace: argocd
spec:
project: default
source:
path: helm/redis
repoURL: https://github.com/svc-design/gitops.git
targetRevision: main
destination:
server: 'https://kubernetes.default.svc'
namespace: itsm-dev
syncPolicy:
automated:
prune: true
selfHeal: true