はじめに
Kubernetes 1.22 で複数の Beta版のAPI の廃止に伴って、ArgoCD v2.0.0からbetaのAPIが消えているため、ArgoCDのバージョンを1.8.7から2.0.5 にアップグレードします。
現状バージョンの確認
1 2 3 | $ argocd version --short argocd: v2.5.5+fc3eaec.dirty argocd-server: v1.8.7+eb3d1fb |
v2.0.5 用マニフェストのダウンロード
v2.0.5 用のマニフェストをダウンロードします。
1 | $ curl -O https://raw.githubusercontent.com/argoproj/argo-cd/v2.0.5/manifests/install.yaml |
v2.0.5 用ディレクトリ配下にマニフェストの分割
管理やすいために、latchmihay/k8s-yaml-splitter を用いて base-v2.0.5ディレクトリ配下にマニフェストを分割して配置します。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | $ mkdir base-v2.0.5 $ k8s-yaml-splitter install.yaml base-v2.0.5 $ $ ls base-v2.0.5/ ClusterRole-argocd-application-controller.yaml ClusterRole-argocd-server.yaml ClusterRoleBinding-argocd-application-controller.yaml ClusterRoleBinding-argocd-server.yaml ConfigMap-argocd-cm.yaml ConfigMap-argocd-gpg-keys-cm.yaml ConfigMap-argocd-rbac-cm.yaml ConfigMap-argocd-ssh-known-hosts-cm.yaml ConfigMap-argocd-tls-certs-cm.yaml CustomResourceDefinition-applications.argoproj.io.yaml CustomResourceDefinition-appprojects.argoproj.io.yaml Deployment-argocd-dex-server.yaml Deployment-argocd-redis.yaml Deployment-argocd-repo-server.yaml Deployment-argocd-server.yaml NetworkPolicy-argocd-application-controller-network-policy.yaml NetworkPolicy-argocd-dex-server-network-policy.yaml NetworkPolicy-argocd-redis-network-policy.yaml NetworkPolicy-argocd-repo-server-network-policy.yaml NetworkPolicy-argocd-server-network-policy.yaml Role-argocd-application-controller.yaml Role-argocd-dex-server.yaml Role-argocd-redis.yaml Role-argocd-server.yaml RoleBinding-argocd-application-controller.yaml RoleBinding-argocd-dex-server.yaml RoleBinding-argocd-redis.yaml RoleBinding-argocd-server.yaml Secret-argocd-secret.yaml Service-argocd-dex-server.yaml Service-argocd-metrics.yaml Service-argocd-redis.yaml Service-argocd-repo-server.yaml Service-argocd-server-metrics.yaml Service-argocd-server.yaml ServiceAccount-argocd-application-controller.yaml ServiceAccount-argocd-dex-server.yaml ServiceAccount-argocd-redis.yaml ServiceAccount-argocd-server.yaml StatefulSet-argocd-application-controller.yaml $ $ rm -f install.yaml # 不要なので削除 |
バージョン v2.0.5 は v1.8.7に比べと、下記の5つのNetworkPolicy ファイルが追加されました:
NetworkPolicy-argocd-application-controller-network-policy.yaml
NetworkPolicy-argocd-dex-server-network-policy.yaml
NetworkPolicy-argocd-redis-network-policy.yaml
NetworkPolicy-argocd-repo-server-network-policy.yaml
NetworkPolicy-argocd-server-network-policy.yaml
[Option]Proxy の設定
環境により必要であれば、以下ファイルに Proxy(Squid) の設定を行う。
argo-cd/base-v1.8.7/StatefulSet-argocd-application-controller.yaml
argo-cd/base-v2.0.5/Deployment-argocd-dex-server.yaml
argo-cd/base-v2.0.5/Deployment-argocd-redis.yaml
argo-cd/base-v2.0.5/Deployment-argocd-repo-server.yaml
argo-cd/base-v2.0.5/Deployment-argocd-server.yaml
imagePullPolicy: Always
の次行に以下設定を追記します。
1 2 3 | envFrom: - configMapRef: name: proxy-***** |
[Option]ALB 経由で ArgoCD へアクセス可能とさせる設定
環境により必要であれば、以下ファイルを修正します。
argo-cd/base-v2.0.5/Deployment-argocd-server.yaml
argo-cd/base-v2.0.5/Service-argocd-server.yaml
Deployment-argocd-server.yaml:
argocd-server
の起動オプションに --insecure
を追加します。
1 2 3 4 5 6 7 | spec: containers: - command: - argocd-server - --staticassets - /shared/app - --insecure # 追加 |
Service-argocd-server.yaml:
環境により必要であれば、https の ClusterIP は使用しない場合、コメントアウトします。
1 2 3 4 | # - name: https # port: 443 # protocol: TCP # targetPort: 8080 |
kube2iam で使用する ServiceAccount の設定
以下ファイルを修正します。
argo-cd/base-v2.0.5/Deployment-argocd-repo-server.yaml
spec.template.metadata に以下 annotations を追加します。
01 02 03 04 05 06 07 08 09 10 | spec: selector: matchLabels: app.kubernetes.io/name: argocd-repo-server template: metadata: annotations: # 追記 iam.amazonaws.com/role: ***role名*** # 追記 labels: app.kubernetes.io/name: argocd-repo-server |
バージョンアップ実施
検証のための環境ではGitLab上でmaster ブランチへのマージを行うと、ArgoCD にて自動デプロイが実行され、この部分の解説は省略させていただきます。
argocli でサーバのバージョンを確認し、argocd-server のバージョンが v2.0.5 となっていることを確認します。
1 2 3 | $ argocd version --short argocd: v2.5.5+fc3eaec.dirty argocd-server: v2.0.5+4c94d88 |
動作確認
ArgoCD の WebUI にアクセスし、ログインできることを確認します。