ApplicationSetでApp of Appsを置き換えるサンプル
たぶんこんな雰囲気?
code:shell
kind create cluster
code:sh
kubectl create namespace argocd
code:sh
kubectl view-secret argocd-initial-admin-secret -n argocd --quiet
code:sh
kubectl port-forward deploy/argocd-server -n argocd 8081:8080
別に8081じゃなくてもいいが
examplesに親Appに相当するのはおらず、ApplicationSetを直接作成するとArgo CDのUIに現れないで子Applicationができるだけなので、ApplicationSetを内包したApplicationを作る。
code:yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: parent
namespace: argocd
spec:
destination:
namespace: argocd
project: default
source:
path: examples/git-generator-directory/
targetRevision: HEAD
ファイルに保存するのも面倒なのでガッとapply
code:fish
echo "apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: parent
namespace: argocd
spec:
destination:
namespace: argocd
project: default
source:
path: examples/git-generator-directory/
targetRevision: HEAD" | kubectl -n argocd apply -f -
code:bash
cat <<EOF | kubectl -n argocd apply -f -
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: parent
namespace: argocd
spec:
destination:
namespace: argocd
project: default
source:
path: examples/git-generator-directory/
targetRevision: HEAD
EOF
ApplicationSetにCreateNamespace=trueがないので生まれるApplicationにも付かず、SyncするとNamespace not foundになるので付ける
code:sh
kubectl patch applicationset cluster-addons -n argocd --type merge -p '{"spec":{"template":{"spec":{"syncPolicy":{"syncOptions":"CreateNamespace=true"}}}}}' parentをSyncするとApplicationSetからApplicationが生まれる
https://scrapbox.io/files/61c53ea043e3c4002073d7b4.png