Creating GitOps Application

Overview

利用 Alauda Container Platform GitOps 的应用管理能力,通过 GitOps Applications 可视化创建 Argo CD ApplicationSet,实现容器化应用的全生命周期管理。

Prerequisites

通过 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 使用最新提交
  • 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:支持多集群部署的差异化配置

    注意差异化配置不会修改 Source Directory 中的基础文件。

  2. 配置 Sync Policy(3 分钟一次的自动对齐):

    参数说明
    Manually Sync发现偏移时需要用户确认。
    Automatic Sync自动对齐,无需人工干预。
    Sync Ignore Configuration通过内置/自定义忽略模板配置,您可以查看 YAML 文件中的同步忽略配置字段
    注意:自定义模板需管理员配置。
  3. 点击 Create

INFO

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

查看 YAML 文件中的同步忽略配置字段

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

  1. 进入 GitOps Application

  2. 选择目标应用

  3. 点击 Action > Update

  4. 查看 YAML 文件内容。

    ignoreDifferences: # 选中自定义同步忽略配置模板实际忽略的配置
      - 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 替换为您自己的命名空间和项目。

    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