🐙️

[Argo CD] Pull Request Generator試し

2024/12/22に公開

https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/

ローカルクラスターにArgo CDをインストール

クラスター作成

https://github.com/mikutas/helmfiles/blob/80d7e69ee1c79ad5792aa142ed222325912fcc3c/justfile#L2-L3

just create-cluster

Argo CDインストール

https://github.com/mikutas/helmfiles/blob/80d7e69ee1c79ad5792aa142ed222325912fcc3c/justfile#L15-L16

just apply argo-cd

adminユーザーのログインパスワード

https://github.com/mikutas/helmfiles/blob/80d7e69ee1c79ad5792aa142ed222325912fcc3c/justfile#L8-L9

just argocd-password

hostsargocd.localをlocalhostのエイリアスとして登録しておく
https://zenn.dev/mikutas/scraps/0f38a62bbca681

http://argocd.local:54321/ を開き、ユーザー名adminとパスワードでログイン

LOG IN VIA GITHUB

ApplicationをSync

argo-cd / app-projects / appsets をSync

podinfo ApplicationSet

http://argocd.local:54321/applications/argo-cd/appsets?resource=&node=argoproj.io%2FApplicationSet%2Fargo-cd%2Fpodinfo%2F0 を開く

spec.generators 抜粋

spec:
  generators:
    - pullRequest:
        github:
          labels:
            - preview
          owner: mikutas
          repo: podinfo
        requeueAfterSeconds: 120

generator定義は以下の意味

  • https://github.com/mikutas/podinfo の、previewラベルの付いたプルリクエストを対象にApplicationを生み出す
    • mikutas/podinfohttps://github.com/stefanprodan/podinfo のfork
    • Applicationsetを編集してownerを書き換えて対象を自分のforkに変えたり
    • repoも書き換えて別のリポジトリにできる
  • 対象プルリクエストの再認識間隔は120秒

http://podinfo.local:54321/ を開く

  template:
    spec:
      source:
        helm:
          valuesObject:
            fullnameOverride: podinfo-{{.number}}
            ingress:
              className: traefik
              enabled: true
            ui:
              message: 'PR #{{.number}}: sha={{.head_sha}}'
        path: charts/podinfo
        repoURL: https://github.com/mikutas/podinfo.git
        targetRevision: '{{.head_sha}}'

生成先Applicationで動的に変更させる値

Discussion