Jenkinsクラスターをプログラムでヘルムを使用して作成および破棄できるように、Jenkinsのセットアップをスクリプト化しようとしています。名前にドットが含まれるキーを設定できないという迷惑な問題が発生しました。私のhelm values.yamlファイルは次のようになります。
---
rbac:
install: true
Master:
HostName: jenkins.mycompany.com
ServiceType: ClusterIP
ImageTag: lts
InstallPlugins:
- kubernetes
- workflow-aggregator
- workflow-job
- credentials-binding
- git
- blueocean
- github
- github-oauth
ScriptApproval:
- "method groovy.json.JsonSlurperClassic parseText Java.lang.String"
- "new groovy.json.JsonSlurperClassic"
- "staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods leftShift Java.util.Map Java.util.Map"
- "staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods split Java.lang.String"
- "method Java.util.Collection toArray"
- "staticMethod org.kohsuke.groovy.sandbox.impl.Checker checkedCall Java.lang.Object boolean boolean Java.lang.String Java.lang.Object[]"
- "staticMethod org.kohsuke.groovy.sandbox.impl.Checker checkedGetProperty Java.lang.Object boolean boolean Java.lang.Object"
Ingress:
Annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
TLS:
- secretName: jenkins-mycompany-com
hosts:
- jenkins.mycompany.com
Memory: "2Gi"
# This breaks the init container
# RunAsUser: 1000
# FSGroup: 1000
Agent:
Enabled: false
ImageTag: latest
cert-manager
、external-dns
、nginx-ingress
をインストールした後(今のところbashスクリプトを使用)、次のようにインストールします。
helm install --values helm/jenkins.yml stable/jenkins
私はletsencryptのドキュメントをまったく読むことができなかったので、テストの過程全体を通じて、実稼働用の割り当てを使用しました。 Ingress
:certmanager.k8s.io/cluster-issuer: letsencrypt-staging
に注釈を追加して、テストを続行できるようにしたい(そして、これを将来のデフォルトとして設定し、本番環境の準備ができたときにオーバーライドする)。
問題は...キー名にピリオドが含まれているため、--set
フラグを使用してこれを渡す方法がわかりません。私はもう試した:
helm install --values helm/jenkins.yml stable/jenkins --set Master.Ingress.Annotations.certmanager.k8s.io/cluster-issuer=letsencrypt-staging
そして
helm install --values helm/jenkins.yml stable/jenkins --set Master.Ingress.Annotations.certmanager\.k8s\.io/cluster-issuer=letsencrypt-staging
もちろん、フラグとして使用する値を追加することでこれを解決できますが、それほど明確ではありません。直接設定する方法はありますか?
キーを引用符で囲み、ドットをエスケープする必要があります
helm install --values helm/jenkins.yml stable/jenkins --set Master.Ingress.Annotations."certmanager\.k8s\.io/cluster-issuer"=letsencrypt-staging