コンテンツにスキップ

Argo Workflows@ワークフロー

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Argo Workflowsの仕組み

アーキテクチャ

ワークフローエンジンである。

workflow-controller、DB、から構成される。


Argo Workflows Archive

ワークフローの処理の状況を保管する。

RDBMSとして、PostgreSQLとMySQLを使用できる。

phaseカラムやprogressカラムを永続化できる。

type archivedWorkflowMetadata struct {
    ClusterName string             `db:"clustername"`
    InstanceID  string             `db:"instanceid"`
    UID         string             `db:"uid"`
    Name        string             `db:"name"`
    Namespace   string             `db:"namespace"`
    Phase       wfv1.WorkflowPhase `db:"phase"`
    StartedAt   time.Time          `db:"startedat"`
    FinishedAt  time.Time          `db:"finishedat"`
    Labels      string             `db:"labels,omitempty"`
    Annotations string             `db:"annotations,omitempty"`
    Progress    string             `db:"progress,omitempty"`
}


02. workflow-controller

workflow-controllerとは

特にArgoCD Workflowのcustom-controllerとして、ArgoCD Workflowのマニフェストを作成/変更する。

application-controllerを分離されている理由は、ArgoCD WorkflowのマニフェストはArgoCDのデプロイ先Clusterに作成するためである。

なお、フロントエンド部分としてargocd-serverが必要である。

argocd_argo-workflow_architecture


03. ユースケース

CIパイプライン

Argo Workflows上でコンテナをビルドし、イメージレジストリにプッシュする。