ApplicationSet
Содержание
Введение
Контроллер ApplicationSet — это контроллер Kubernetes, который добавляет поддержку CustomResourceDefinition (CRD) ApplicationSet. Этот контроллер/CRD обеспечивает как автоматизацию, так и большую гибкость в управлении Argo CD Applications на большом количестве кластеров и внутри монорепозиториев, а также позволяет реализовать самообслуживание в многопользовательских Kubernetes кластерах.
Сценарии использования ApplicationSet
- Развертывание нескольких похожих приложений: когда необходимо развернуть несколько приложений с похожими конфигурациями, можно использовать ApplicationSet для сокращения избыточных конфигураций. Например, можно использовать ApplicationSet для развертывания нескольких микросервисов, которые используют один и тот же шаблон, но имеют разные имена сервисов и номера портов.
- Мультикластерное развертывание: когда нужно развернуть одно и то же приложение в нескольких Kubernetes кластерах, ApplicationSet упрощает конфигурацию. Например, можно определить приложение с помощью ApplicationSet и развернуть его в нескольких кластерах, каждый из которых использует разные параметры.
- Динамическая генерация приложений: когда необходимо динамически создавать приложения на основе определённых условий, можно использовать ApplicationSet. Например, можно динамически создавать разные экземпляры приложения на основе веток или тегов в Git-репозитории.
Пример ApplicationSet
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: guestbook
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
- cluster: engineering-prod
url: https://2.4.6.8
- cluster: finance-preprod
url: https://9.8.7.6
template:
metadata:
name: '{{.cluster}}-guestbook'
spec:
project: my-project
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: guestbook/{{.cluster}}
destination:
server: '{{.url}}'
namespace: guestbook
Ссылки