Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Recap: Customizing Kustomize with Client-Side Custom Resources

yugo kobayashi
October 27, 2021
210

Recap: Customizing Kustomize with Client-Side Custom Resources

yugo kobayashi

October 27, 2021
Tweet

Transcript

  1. Custom Resource とは kubernetes で buildin ではない新しく定義したリソース - cert-manager -

    knative - 各種Operator 7 https://kubernetes.io/ja/docs/concepts/extend-kubernetes/api-extension/custom-resources/
  2. Custom Resource とは kubernetes で buildin ではない新しく定義したリソース - cert-manager -

    knative - 各種Operator 8 https://kubernetes.io/ja/docs/concepts/extend-kubernetes/api-extension/custom-resources/ https://kubernetes.io/ja/docs/concepts/extend-kubernetes/api-extension/custom-resources/
  3. Custom Resource とは kubernetes で buildin ではない新しく定義したリソース - cert-manager -

    knative - 各種Operator 9 https://github.com/prometheus-operator/kube-prometheus/blob/main/examples/example-app/prometheus-frontend.yaml
  4. kustomizeの拡張機能 自作のリソースのジェネレータやトランスフォーマーをkustomizeで適用できる - generator > 任意のリソースを生成する(configMapGeneratorなど) - transformer > 各リソースに共通の値を入れる(共通のNamespaceやlabelの設定など)

    kustomizeが内部的に使用しているリソース処理のレイヤー これらの機能を持つコードを書くことで、任意の処理を kustomize で適用できる 13 https://kubectl.docs.kubernetes.io/guides/extending_kustomize/
  5. kustomizeの拡張機能で処理を行うメリット - 開発が簡単 - k8sクラスタ無しでpluginの適用が実行できる - pluginのversionをマニフェスト適用の段階で決められる - `kustomize build`

    で適用できるので既存のCI/CDフローに入れやすい - containerだと docker pull で imageを取って来てくれるので、 yamlを変更するだけで使える - yaml定義で完結する 20
  6. 参考 - https://kubectl.docs.kubernetes.io/guides/extending_kustomize/containerized_krm_functions/ - kustomizeの拡張 (Containerized KRM Functions) のドキュメント -

    (私が見た時は) transformers の内容が微妙に間違っていたので https://github.com/kubernetes-sigs/kustomize/blob/kustomize/v4.4.0/hack/krmFunctionBenchm ark/example_tshirt/containerfn/transf.yaml も参考に - https://pkg.go.dev/sigs.k8s.io/kustomize/[email protected]/fn/framework - https://static.sched.com/hosted_files/kccncna2021/da/Customizing%20Kustomize%20-%20Verey% 3ARegan.pdf - kubeconの発表資料 - https://github.com/koba1t/krm-fn-app - demoのrepo 22