いくつかのコンポーネントから構成される複雑なソリューションのアンブレラ ヘルム チャートを作成しようとしています。それらの 1 つはデータベースで、mariadb-galera チャートを使用します。私が直面している問題は、DB が利用可能になったらフライウェイ移行を実行したいのですが、それを適切に行う方法が見つからないということです。まず、範囲バージョンを使用したいのですが、フル バージョンを指定せずにフックを DB サブチャートに一致させる方法がわかりません。次に、最近サブチャートのエイリアスを追加しましたが、フックを適切にトリガーできませんでした。インストール時にトリガーされ、DB が最終的に利用可能になるまで何度も失敗します。
私Chart.yaml
はそのように見えます:
apiVersion: v2
name: myApp
description: umbrella chart
type: application
version: 0.1.0
appVersion: "0.1-dev"
dependencies:
- name: "portal"
version: "0.1-dev"
alias: "portal"
- name: "mariadb-galera"
version: "~5.11"
repository: "https://charts.bitnami.com/bitnami"
alias: "database"
#...More dependencies...
私のフックは次のように定義されています:
apiVersion: batch/v1
kind: Job
metadata:
name: {{ include "myApp.fullname" . }}-migration
labels:
{{- include "myApp.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
spec:
template:
metadata:
name: "{{ .Release.Name }}-migration"
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
helm.sh/chart: "database-5.11.2"
spec:
containers:
- name: flyway-migration
image: flyway/flyway
args:
- "migrate"
- "-password=$(DB_PASS)"
volumeMounts:
- name: migration-files
mountPath: /flyway/sql/
- name: flyway-conf
mountPath: /flyway/conf/
env:
- name: DB_PASS
valueFrom:
secretKeyRef:
name: mariadb-secret
key: mariadb-password
volumes:
- name: migration-files
configMap:
name: migration-files
- name: flyway-conf
configMap:
name: flyway-conf
エイリアスを使用する前は、helm.sh アノテーションは次のようでした。
helm.sh/chart: "mariadb-galera-5.11.2"
ご覧のとおり、手動で含めたくない完全なバージョンが必要です。
私は次のようなものを使用しようとしました:
{{ template ".Chart.name" .Subcharts.database }}
.Chart
しかし、サブチャートの値にアクセスできないようです。
私が逃したものはありますか?