This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
контроллер_argocd [2024/07/28 11:36] val [Управление приложениями через kubectl] |
контроллер_argocd [2026/01/27 11:32] (current) val |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| * [[https://developers.redhat.com/articles/2023/05/25/3-patterns-deploying-helm-charts-argocd|3 patterns for deploying Helm charts with Argo CD]] | * [[https://developers.redhat.com/articles/2023/05/25/3-patterns-deploying-helm-charts-argocd|3 patterns for deploying Helm charts with Argo CD]] | ||
| * [[https://medium.com/globant/using-multiple-sources-for-a-helm-chart-deployment-in-argocd-cf3cd2d598fc|Using multiple sources for a Helm Chart deployment in ArgoCD]] | * [[https://medium.com/globant/using-multiple-sources-for-a-helm-chart-deployment-in-argocd-cf3cd2d598fc|Using multiple sources for a Helm Chart deployment in ArgoCD]] | ||
| + | |||
| + | * [[https://habr.com/ru/articles/674704/|Рабочий пример использования ArgoCD]] | ||
| ===== Развертывание и подключение к контроллеру ArgoCD ===== | ===== Развертывание и подключение к контроллеру ArgoCD ===== | ||
| <code> | <code> | ||
| Line 14: | Line 16: | ||
| kube1:~# watch kubectl get pods -n argocd | kube1:~# watch kubectl get pods -n argocd | ||
| + | </code> | ||
| + | * [[Система Kubernetes#Инструмент командной строки kubectl]] | ||
| + | <code> | ||
| cmder$ kubectl port-forward svc/argocd-server -n argocd 8080:443 | cmder$ kubectl port-forward svc/argocd-server -n argocd 8080:443 | ||
| Line 22: | Line 26: | ||
| * [[https://localhost:8080/]] | * [[https://localhost:8080/]] | ||
| - | ===== Установка, подключение и управление приложениями через утилиту argocd ===== | + | ===== Развертывание приложений ===== |
| + | |||
| + | ==== Установка, подключение и управление приложениями через утилиту argocd ==== | ||
| <code> | <code> | ||
| Line 60: | Line 66: | ||
| </code> | </code> | ||
| - | ===== Управление приложениями через kubectl ===== | + | ==== Управление приложениями через kubectl ==== |
| * [[https://argo-cd.readthedocs.io/en/release-1.8/user-guide/private-repositories/#managing-tls-certificates-using-the-argocd-web-ui|Managing TLS certificates using the ArgoCD web UI]] | * [[https://argo-cd.readthedocs.io/en/release-1.8/user-guide/private-repositories/#managing-tls-certificates-using-the-argocd-web-ui|Managing TLS certificates using the ArgoCD web UI]] | ||
| Line 73: | Line 79: | ||
| namespace: argocd | namespace: argocd | ||
| finalizers: | finalizers: | ||
| - | - resources-finalizer.argocd.argoproj.io | + | - resources-finalizer.argocd.argoproj.io/background |
| spec: | spec: | ||
| project: default | project: default | ||
| Line 79: | Line 85: | ||
| repoURL: 'https://server.corpX.un/student/gowebd-k8s.git' | repoURL: 'https://server.corpX.un/student/gowebd-k8s.git' | ||
| path: webd-chart | path: webd-chart | ||
| + | # repoURL: 'https://gitlab.corpX.un/student/webd-k8s.git' | ||
| + | # path: uni-webd-chart | ||
| # helm: | # helm: | ||
| Line 87: | Line 95: | ||
| # REALM_NAME: "corp" | # REALM_NAME: "corp" | ||
| # valueFiles: | # valueFiles: | ||
| + | # - ../apps/gowebd/values.yaml | ||
| # - ../env.yaml | # - ../env.yaml | ||
| Line 104: | Line 113: | ||
| kube1# ### kubectl delete -f application.yaml | kube1# ### kubectl delete -f application.yaml | ||
| </code> | </code> | ||
| - | ===== Тестирование приложения ===== | + | |
| + | ==== Тестирование приложения ==== | ||
| <code> | <code> | ||
| $ curl http://kube1 -H "Host: gowebd.corpX.un" | $ curl http://kube1 -H "Host: gowebd.corpX.un" | ||
| Line 121: | Line 131: | ||
| Chart.yaml | Chart.yaml | ||
| appVersion: "ver1.N" | appVersion: "ver1.N" | ||
| + | </code> | ||
| + | |||
| + | ==== Развертывание множества приложений через ApplicationSet ==== | ||
| + | <code> | ||
| + | kube1:~/webd-k8s# cat argocd/application-s.yaml | ||
| + | </code><code> | ||
| + | apiVersion: argoproj.io/v1alpha1 | ||
| + | kind: ApplicationSet | ||
| + | metadata: | ||
| + | name: my-webd-s | ||
| + | namespace: argocd | ||
| + | spec: | ||
| + | generators: | ||
| + | - git: | ||
| + | repoURL: 'https://gitlab.corpX.un/student/webd-k8s.git' | ||
| + | revision: main | ||
| + | directories: | ||
| + | - path: apps/* | ||
| + | |||
| + | template: | ||
| + | metadata: | ||
| + | name: '{{path.basename}}' | ||
| + | labels: | ||
| + | name: apps | ||
| + | finalizers: | ||
| + | - resources-finalizer.argocd.argoproj.io/background | ||
| + | spec: | ||
| + | project: default | ||
| + | sources: | ||
| + | - repoURL: 'https://gitlab.corpX.un/student/webd-k8s.git' | ||
| + | targetRevision: main | ||
| + | path: uni-webd-chart | ||
| + | helm: | ||
| + | valueFiles: | ||
| + | - $values/apps/{{path.basename}}/values.yaml | ||
| + | - $values/env.yaml | ||
| + | - repoURL: 'https://gitlab.corpX.un/student/webd-k8s.git' | ||
| + | targetRevision: main | ||
| + | ref: values | ||
| + | |||
| + | destination: | ||
| + | server: 'https://kubernetes.default.svc' | ||
| + | namespace: my-ns | ||
| + | syncPolicy: | ||
| + | automated: | ||
| + | prune: true | ||
| + | selfHeal: true | ||
| + | |||
| + | syncOptions: | ||
| + | - CreateNamespace=true | ||
| </code> | </code> | ||
| ===== Дополнительные материалы ===== | ===== Дополнительные материалы ===== | ||
| + | ==== Добавление корпоративного корневого сертификата ==== | ||
| + | |||
| + | * [[Решение FreeIPA#Корневой сертификат]] | ||
| + | |||
| + | <code> | ||
| + | Settings-> | ||
| + | Repository certificates and known hosts-> | ||
| + | ADD TLS CERTIFICATE | ||
| + | Repository Server Name: gitlab.corpX.un | ||
| + | TLS Certificate (PEM format): cat /.../ca.crt | ||
| + | | ||
| + | kube1:~/webd-k8s# kubectl -n argocd get configmaps argocd-tls-certs-cm -o yaml | less | ||
| + | </code> | ||
| ==== Доступ к не публичному git репозиторию ==== | ==== Доступ к не публичному git репозиторию ==== | ||