创建 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 dashboard 集成代码仓库
Integration Project Name管理员分配的 Toolchain 项目
Version Identifiers部署依据:Branch/Tag/Commit
注意
  • Branch 使用最新提交
  • Tag/Commit 默认为最新,但可配置
Source File TypeKustomize:使用 kustomization.yaml 进行覆盖层配置;更多详情请参考 Kustomize 官方文档
Helm:使用 values.yaml 进行模板渲染;更多详情请参考 Helm 官方文档
Directory:原始清单
Source Directory包含基础清单的仓库路径。支持选择根目录。此路径下的所有资源都将部署到目标集群
Custom ValuesSource File TypeHelm 时,可选择自定义 Helm Values 文件
  1. Destination 部分配置参数:

    • Application:差异化配置不会修改源目录中的基础文件。

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

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

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

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

INFO

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

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

配置同步忽略规则后,可通过以下步骤验证:

  1. 导航到 GitOps Application

  2. 选择目标应用

  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