🐙

HelmでインストールしたArgoCDをアップグレードする

2024/07/11に公開

概要

Helmを使ってKubernetes(K8s)クラスタにArgoCDを導入することがあると思います。
本記事では、定期的に発生するアップグレードのやり方を示します。

前提

K8sクラスタにHelmを使ってArgoCDが導入済であること

> helm repo add argo https://argoproj.github.io/argo-helm

> helm install -n argocd argocd argo/argo-cd

アップグレード前に破壊的変更がないことを確認済であること

https://artifacthub.io/packages/helm/argo/argo-cd?modal=changelog

作業対象のクラスタの認証情報を取得済であること

  • minikubeの場合
> kubectx minikube
Switched to context "minikube".

アップグレード作業

1. 現在のバージョン確認

今回は、2.9系から2.11系(2024/07現在最新)にアップグレードしたいと思います。

> helm ls -n argocd
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
argocd  argocd          1               2023-12-08 12:05:07.607549 +0900 JST    deployed        argo-cd-5.51.6  v2.9.3  

2. アップグレード

Helmのコマンドは以下のようになっています。

helm upgrade [リソース名] -n [ArgoCDを導入したNamespace名] [Chart名] -- version [Chartのバージョン]

ここで注意しなければならない点は、-- versionで指定するのがArgoCDのバージョンではなく、ArgoCDのChartのバージョンである点です。

Chartのバージョンは、前述しているartifacthubのCHANGELOGから確認することが可能です。

コマンドを実行し、以下のように表示されれば成功です。

> helm upgrade argocd -n argocd  argo/argo-cd --version 7.3.4

Release "argocd" has been upgraded. Happy Helming!
NAME: argocd
LAST DEPLOYED: Thu Jul 11 00:58:39 2024
NAMESPACE: argocd
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
In order to access the server UI you have the following options:

1. kubectl port-forward service/argocd-server -n argocd 8080:443

    and then open the browser on http://localhost:8080 and accept the certificate

2. enable ingress in the values file `server.ingress.enabled` and either
      - Add the annotation for ssl passthrough: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-1-ssl-passthrough
      - Set the `configs.params."server.insecure"` in the values file and terminate SSL at your ingress: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-2-multiple-ingress-objects-and-hosts


After reaching the UI the first time you can login with username: admin and the random password generated during the installation. You can find the password by running:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

(You should delete the initial secret afterwards as suggested by the Getting Started Guide: https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli)
> 

3. アップグレード後

念の為、アップグレードしたバージョンになっているか確認します。

ChartとArgoCD共にアップグレードされていることが確認できました。

> helm ls -n argocd
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
argocd  argocd          2               2024-07-11 00:58:39.711598 +0900 JST    deployed        argo-cd-7.3.4   v2.11.4

まとめ

  • HelmでインストールしたArgoCDのアップグレード方法を示しました。
  • 破壊的変更がなければ簡単にアップグレード可能なことを確認しました。

Discussion