Retrospective用ツールのPostfactoをHelmでインストールします。
Postfactoは便利なツールなのですが、 https://github.com/vmware-archive/postfacto はアーカイブ化されてしまいました。 このレポジトリで作られいたHelm ChartはIngressのAPIバージョンが古く、K8s 1.22以降では利用できません。
また使用されているDocker Imageであるpostfacto/postfacto
は既に多くの脆弱性を含むため、使いづらいです。
そこで、 https://github.com/making/postfacto にフォークして、Helm ChartおよびSub ChartとDockerイメージを更新し、Kubernetesにデプロイできるようにしました。
脆弱性はこのくらいまで減らせました。
Postfactoのインストール
以下のコマンドはHelm 3.12で試しました。
もし、ociからchartを直接取得できない場合は、以下のコマンドは
wget https://github.com/making/postfacto/releases/download/0.6.0-beta/postfacto-0.6.0-beta.tgz helm upgrade postfacto ./postfacto-0.6.0-beta.tgz ...
に置き換えてください。
Type=LoadBalancerなServiceでPostofactoを公開する場合
helm upgrade postfacto oci://ghcr.io/making/helm-charts/postfacto --version 0.6.0-beta \
-n postfacto \
--set service.type=LoadBalancer \
--create-namespace \
--install
PostfactoのExternal IPはkubectl get svc --namespace postfacto postfacto --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"
で取得できます。
IngressでPostofactoを公開する場合
以下のpostfacto.172-19-255-200.sslip.io
は自環境に置き換えてください。PostfactoはWebSocketを使用するため、Ingress Controller毎に必要に応じてアノテーションを設定してください。以下はContourを使用する場合です。
helm upgrade postfacto oci://ghcr.io/making/helm-charts/postfacto --version 0.6.0-beta \
-n postfacto \
--set service.type=ClusterIP \
--set ingress.enabled=true \
--set "ingress.hosts[0].host=postfacto.172-19-255-200.sslip.io" \
--set "ingress.hosts[0].paths[0]=/" \
--set ingress.annotations."projectcontour\.io/websocket-routes"=/ \
--create-namespace \
--install
TLSを有効にする場合は次のような設定を追加します。以下はcert-managerと連携する例です。selfsigned-cluster-issuer
は自環境に置き換えてください。
helm upgrade postfacto oci://ghcr.io/making/helm-charts/postfacto --version 0.6.0-beta \
-n postfacto \
--set service.type=ClusterIP \
--set ingress.enabled=true \
--set "ingress.hosts[0].host=postfacto.172-19-255-200.sslip.io" \
--set "ingress.hosts[0].paths[0]=/" \
--set-string ingress.annotations."ingress\.kubernetes\.io/force-ssl-redirect"=true \
--set ingress.annotations."cert-manager\.io/cluster-issuer"=selfsigned-cluster-issuer \
--set ingress.annotations."projectcontour\.io/websocket-routes"=/ \
--set "ingress.tls[0].secretName=postfacto-tls" \
--set "ingress.tls[0].hosts[0]=postfacto.172-19-255-200.sslip.io" \
--create-namespace \
--install
Postfactoにアクセスしてください。
Adminユーザーの登録
Adminユーザーを次のコマンドで登録します。この例ではユーザー名をadmin@example.com
、パスワードをalwaysbekind
としています。
POD_NAME=$(kubectl get pod -n postfacto -l app.kubernetes.io/instance=postfacto,app.kubernetes.io/name!=postgresql,app.kubernetes.io/name!=redis -ojsonpath='{.items[0].metadata.name}')
kubectl exec ${POD_NAME} -n postfacto -- create-admin-user admin@example.com alwaysbekind
/admin
にアクセスして、作成したAdminユーザーでログインします。
Retroの新規作成
"Retro" -> "New Retro"をクリックしてください。
"Name", "Slug", "Create new Password"を入力し、"Create Retro"をクリックしてください。SlugはRetroのURLに使われます。ここでは全てtest
を入力します。
Retroへのアクセス
/retro/{slug}
にアクセスしてください。
Retro作成時に設定したパスワードを入力してください。
これでRetroを開始できます!
Postfactoのアンインストール
helm delete -n postfacto postfacto
kubectl delete pvc -n postfacto --all