0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KappControllerConfigを修正してkapp-controllerの設定値を変更する

Last updated at Posted at 2023-08-28

小ネタ。
TKG2.1以降のclass-basedで作成したクラスタのkapp-controllerのconfigは、従来のkapp-controller-configの変更方法では変更できない。
kapp-controller-configを編集しても、リコンサイルで元に戻ってしまう。
これを編集する方法のメモ。

編集方法

Workload Clusterのkapp-controller-configはManagement Clusterのkind: KappControllerConfigのオブジェクトで管理されている。

$ k get kappcontrollerconfigs -A
NAMESPACE    NAME                                           NAMESPACE    GLOBALNAMESPACE   SECRETNAME
default      imurata-wdc-huge-tap-kapp-controller-package   tkg-system   tkg-system
tkg-system   v1.23.17---vmware.1-tkg.1                      tkg-system   tkg-system
tkg-system   v1.24.11---vmware.1-tkg.1                      tkg-system   tkg-system
tkg-system   v1.25.7---vmware.2-tkg.1                       tkg-system   tkg-system
tkg-system   wdc-huge-mc-kapp-controller-package            tkg-system   tkg-system

このリソースをkubectl explainで見ると、spec.kappController.configのところにkapp-controllerのconfigと同じような項目が確認できる。

$ kubectl explain KappControllerConfig.spec.kappController --recursive
KIND:     KappControllerConfig
VERSION:  run.tanzu.vmware.com/v1alpha3

RESOURCE: kappController <Object>:

DESCRIPTION:
     <empty>

FIELDS:
   config	<Object>
      caCerts	<string>
      dangerousSkipTLSVerify	<string>
      httpProxy	<string>
      httpsProxy	<string>
      noProxy	<string>
   createNamespace	<boolean>
   deployment	<Object>
      apiPort	<integer>
      concurrency	<integer>
      hostNetwork	<boolean>
      metricsBindAddress	<string>
      priorityClassName	<string>
      tolerations	<[]map[string]string>
   globalNamespace	<string>

実際に書き換えて反映されるか確認してみる。
今回はHarborの証明書を追加してみる。
現在のWorkload Clusterのconfigの内容は以下となっている。

$ kubectl get cm -o jsonpath={.data} -n tkg-system kapp-controller-config | jq .
{
  "caCerts": "",
  "dangerousSkipTLSVerify": "",
  "httpProxy": "",
  "httpsProxy": "",
  "noProxy": ""
}

KubeControllerConfigを編集する。使い回せるよう、yttによるoverlay+attachで編集する。
一度ファイルに落とし込む。

kubectl get kappcontrollerconfigs imurata-wdc-huge-tap-kapp-controller-package  -o yaml | kubectl neat -f - > ./kapp-config.yaml

overlayファイルを作成する。なお、Harborの証明書はカレントディレクトリにca.crtで置いてあるものとする。

cat << 'EOF' > ./overlay.yaml
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")
#@ cert = data.read("ca.crt")
#@overlay/match by=overlay.subset({"kind":"KappControllerConfig"})
---
spec:
  kappController:
    #@overlay/match missing_ok=True
    config:
      caCerts: #@ cert
EOF

overlayして適切に値が変わっているか確認する。

ytt -f overlay.yaml  -f kapp-config.yaml  -f ca.crt 

問題なければ、yttで生成したyamlを使ってapplyする。

ytt -f overlay.yaml  -f kapp-config.yaml  -f ca.crt | k apply -f -

コマンド実行後、再びkapp-controller-configを見てみる。

$ kubectl get cm -o jsonpath={.data} -n tkg-system kapp-controller-config | jq .
{
  "caCerts": "-----BEGIN CERTIFICATE-----\nMII..(省略)",
  "dangerousSkipTLSVerify": "",
  "httpProxy": "",
  "httpsProxy": "",
  "noProxy": ""
}

上手く設定されたようだ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?