创建 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 Info 和 Code 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 Values当 Source File Type 为 Helm 时,可选择自定义 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 文件并配置相关信息。请将 namespace 和 project 替换为您自己的 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