创建 GitOps Application

概述

借助 Alauda Container Platform GitOps 的应用管理能力,可通过 GitOps Applications 可视化创建 Argo CD ApplicationSet,从而对容器化应用进行全生命周期管理。

前提条件

通过 Web 控制台创建 Argo CD Application

通过可视化管理界面简化应用分发流程。

操作步骤

  1. 进入 Container Platform,然后导航到 GitOps Applications

  2. 单击 Create GitOps Application

  3. Basic InfoCode Repository 部分配置参数:

参数描述
TypeApplication:用于单命名空间部署的 Argo CD Application 对象
ApplicationSet:用于跨集群/跨命名空间部署并支持差异化配置的 Argo CD ApplicationSet
SourcePlatform integrated:预配置的 GitLab/GitHub/Bitbucket 仓库
ArgoCD integrated:通过 Argo CD 集成的 GitLab/GitHub/Bitbucket/Gitee/Gitea 仓库。请参阅 通过 Argo CD 监控面板集成代码仓库
Integration Project Name管理员分配的 Toolchain 项目
Version Identifiers部署依据:Branch/Tag/Commit
注意
  • Branch 使用最新 commit
  • Tag/Commit 默认使用最新版本,但可配置
Source File TypeKustomize:使用 kustomization.yaml 进行 overlay 配置;更多详情请参阅 Kustomize Official Documentation
Helm:使用 values.yaml 进行模板化;更多详情请参阅 Helm Official Documentation
Directory:原始 manifest
Source Directory包含基础 manifest 的仓库路径。支持选择根目录。此路径中的所有资源都会部署到目标集群
Custom ValuesSource File TypeHelm 时,可以选择自定义 Helm Values 文件
  1. Destination 部分配置参数:

    • Application:差异化配置不会修改 Source Directory 中的基础文件。

    • ApplicationSet:使用 Differentiated Configuration 进行多集群部署。

    注意Differentiated Configuration 不会修改 Source Directory 中的基础文件。

  2. Sync Policy(3 分钟协调间隔)。

    参数描述
    Manually Sync检测到漂移时,需要用户确认。
    Automatic Sync无需人工干预即可自动协调。
    Sync Ignore Configuration使用内置/自定义 ignore 模板进行配置,您可以在 查看 YAML 文件中的 Sync Ignore 配置字段
    注意:自定义模板需要管理员配置。
  3. 单击 Create

INFO

手动同步说明:选择 Synchronize Immediately 可立即部署,或选择 Synchronize Later 以便稍后在详情页手动触发。

查看 YAML 文件中的 Sync Ignore 配置字段

配置 sync ignore 规则后,可通过以下步骤验证:

  1. 导航到 GitOps Application

  2. 选择目标 Application

  3. 单击 Action > Update

  4. 查看 YAML 文件。

    ignoreDifferences: # The configuration actually ignored by the selected custom synchronization ignore configuration template
      - group: apps
        kind: Deployment
        jsonPointers:
          - /spec/replicas

通过 YAML 创建 Argo CD Application

操作步骤

  1. 进入 Container Platform,然后导航到 GitOps Applications

  2. 单击 Create GitOps Application

  3. 切换到 YAML 选项卡。

  4. YAML 部分,请参考以下 YAML 文件并配置相关信息。将 namespaceproject 替换为您自己的 namespace 和 project。

    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: guestbook
      namespace: argocd # Replace with your own namespace
    spec:
      project: default # Replace with your own project
      source:
        repoURL: https://github.com/argoproj/argocd-example-apps.git
        targetRevision: master
        path: helm-guestbook
      destination:
        server: https://kubernetes.default.svc
        namespace: guestbook
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
        syncOptions:
          - CreateNamespace=true
  5. 单击 Create

通过 CLI 创建 Argo CD Application

前提条件

已安装 web-cli 插件,并启用 web-cli 开关。

kubectl apply -f application.yaml