112 lines
16 KiB
Plaintext
112 lines
16 KiB
Plaintext
|
||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome[0m[38;2;255;187;0m[1m[4m [0m[38;2;255;187;0m[1m[4mKustomize[0m[38;2;255;187;0m[1m[4m [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m [0m[38;5;14m[1m[4m(https://raw.githubusercontent.com/sindresorhus/awesome/main/media/badge.svg)[0m[38;2;255;187;0m[1m[4m [0m[38;2;255;187;0m[1m[4m(https://github.com/sindresorhus/awesome)[0m[38;2;255;187;0m[1m[4m [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mPRs[0m[38;2;255;187;0m[1m[4m [0m[38;2;255;187;0m[1m[4mWelcome[0m[38;5;14m[1m[4m [0m[38;5;14m[1m[4m(https://img.shields.io/badge/PRs-welcome-brightgreen.svg)[0m[38;2;255;187;0m[1m[4m [0m
|
||
[38;5;12m [39m[38;2;255;187;0m[1m[4m(https://github.com/aabouzaid/awesome-kustomize/compare)[0m
|
||
|
||
|
||
[38;5;12m [39m
|
||
[48;5;235m[38;5;249m[49m[39m
|
||
[38;5;12m [39m
|
||
|
||
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mA curated and collaborative list of awesome Kustomize resources.[39m
|
||
|
||
[38;5;14m[1mKustomize[0m[38;5;12m [39m[38;5;12m(https://kustomize.io)[39m[38;5;12m [39m[38;5;12mintroduces[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtemplate-free[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcustomize[39m[38;5;12m [39m[38;5;12mKubernetes[39m[38;5;12m [39m[38;5;12mmanifests.[39m[38;5;12m [39m[38;5;12mIt's[39m[38;5;12m [39m[38;5;12mextensible[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mpurely[39m[38;5;12m [39m[38;5;12mdeclarative[39m[38;5;12m [39m[38;5;12mapproach[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mconfiguration[39m[38;5;12m [39m[38;5;12mcustomization,[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mefficiently[39m[38;5;12m [39m[38;5;12mmanage[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m
|
||
[38;5;12mInfrastructure[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12m(IaC).[39m
|
||
|
||
[38;5;12mContributions are welcome, add links through [39m[38;5;14m[1mpull requests[0m[38;5;12m (https://github.com/aabouzaid/awesome-kustomize/pulls) or create an issue to start a discussion.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOverview[0m[38;5;12m (#overview)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPlugins[0m[38;5;12m (#plugins)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mGenerators[0m[38;5;12m (#generators)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mTransformers[0m[38;5;12m (#transformers)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mValidators[0m[38;5;12m (#validators)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGuides[0m[38;5;12m (#guides)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mNovice[0m[38;5;12m (#novice)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mIntermediate[0m[38;5;12m (#intermediate)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mAdvanced[0m[38;5;12m (#advanced)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mTips \& Tricks[0m[38;5;12m (#tips--tricks)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mMisc[0m[38;5;12m (#misc)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mRelated lists[0m[38;5;12m (#related-lists)[39m
|
||
|
||
[38;2;255;187;0m[4mOverview[0m
|
||
|
||
[38;5;12mKustomize[39m[38;5;12m [39m[38;5;12mworks[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstandalone[39m[38;5;12m [39m[38;5;12mbinary;[39m[38;5;12m [39m[38;5;12malso,[39m[38;5;12m [39m[38;5;12mit's[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12minto[39m[38;5;12m [39m[48;5;235m[38;5;249mkubectl[49m[39m[38;5;12m [39m[38;5;12m(since[39m[38;5;12m [39m[38;5;12mv1.14).[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12moff-the-shelf[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mHelm[0m[38;5;14m[1m [0m[38;5;14m[1mcharts[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mAlso,[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdeep[39m[38;5;12m [39m[38;5;12mintegration[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;14m[1mGitOps[0m[38;5;12m [39m[38;5;12mtools[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mArgoCD,[39m[38;5;12m [39m[38;5;12mFlux,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||
[38;5;12mmany[39m[38;5;12m [39m[38;5;12mothers.[39m
|
||
|
||
[38;2;255;187;0m[4mPlugins[0m
|
||
|
||
[38;5;12mKustomize has 3 types of plugins [39m[48;5;235m[38;5;249mgenerator[49m[39m[38;5;12m, [39m[48;5;235m[38;5;249mtransformer[49m[39m[38;5;12m, and [39m[48;5;235m[38;5;249mvalidator[49m[39m[38;5;12m.[39m
|
||
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mNote[39m
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mIf you are a plugin developer, it's highly recommended to support the new plugins standard[39m
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;14m[1mKRM function[0m[38;5;12m (https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md).[39m
|
||
|
||
[38;2;255;187;0m[4mGenerators[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSecretize[0m[38;5;12m (https://github.com/bbl/secretize) - Generating Kubernetes Secret from various sources. It's like a swiss army knife, but for Kubernetes secrets (Exec).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSopsSecretGenerator[0m[38;5;12m (https://github.com/goabout/kustomize-sopssecretgenerator/) - Generating Secrets from sops-encrypted files (Exec, Exec KRM).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mKSops[0m[38;5;12m (https://github.com/viaduct-ai/kustomize-sops) - Generating Secrets from sops-encrypted files (Exec).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPolicyGenerator[0m[38;5;12m (https://github.com/open-cluster-management-io/policy-generator-plugin) - Generating Open Cluster Management policies (Exec).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mKRMFfnBuiltin[0m[38;5;12m (https://github.com/kaweezle/krmfnbuiltin) - Running builtin generators transformers (Exec).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mMerger[0m[38;5;12m (https://github.com/aabouzaid/kustomize-plugin-merger) - Generating manifests seamlessly by extending Kustomize merge strategies using schemaless StrategicMerge (Containerized KRM, Exec KRM).[39m
|
||
|
||
[38;2;255;187;0m[4mTransformers[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHelmValuesTransformer[0m[38;5;12m (https://github.com/openinfradev/kustomize-helm-transformer) - Transforming values in HelmRelease CustomResource. It helps to manage a lot of HelmRelease's value in single transformer file (Exec).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTemplateTransformer[0m[38;5;12m (https://github.com/joshdk/template-transformer) - Providing a set of KRM Functions to run builtin transformers in place (Containerized KRM, Exec KRM).[39m
|
||
|
||
[38;2;255;187;0m[4mValidators[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKubeconformValidator[0m[38;5;12m (https://github.com/aabouzaid/kustomize-kubeconformvalidator) - Validating Kubernetes manifests using embedded Kubeconform (Containerized KRM, Exec KRM).[39m
|
||
|
||
[38;2;255;187;0m[4mGuides[0m
|
||
|
||
[38;5;12mKustomize guides based on their level or type like 📰 Article, 📺 Video, 🧪 Lab.[39m
|
||
|
||
[38;2;255;187;0m[4mNovice[0m
|
||
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mDeclarative Management of Kubernetes Objects Using Kustomize[0m[38;5;12m (https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) - The official Kubernetes documentation task for Kustomize.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12m📰[39m[38;5;12m [39m[38;5;14m[1mConfigure[0m[38;5;14m[1m [0m[38;5;14m[1mKubernetes[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mKustomize[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/anthos-config-management/docs/concepts/kustomize)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12mhelps[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mget[39m[38;5;12m [39m[38;5;12mstarted[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mKustomize,[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mintended[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mcases,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfind[39m[38;5;12m [39m[38;5;12mresources[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m
|
||
[38;5;12mother[39m[38;5;12m [39m[38;5;12mGoogle[39m[38;5;12m [39m[38;5;12mCloud[39m[38;5;12m [39m[38;5;12mtools.[39m
|
||
[38;5;12m- 📺 [39m[38;5;14m[1mOrganizing the YAML mess with Kustomize[0m[38;5;12m (https://www.youtube.com/watch?v=1fCAwFGX38U) - A talk shows how Kustomize could help to manage Kubernetes YAML files with a growing number of services and environments.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12m📺[39m[38;5;12m [39m[38;5;14m[1mKustomize:[0m[38;5;14m[1m [0m[38;5;14m[1mDeploy[0m[38;5;14m[1m [0m[38;5;14m[1mYour[0m[38;5;14m[1m [0m[38;5;14m[1mApp[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mTemplate[0m[38;5;14m[1m [0m[38;5;14m[1mFree[0m[38;5;14m[1m [0m[38;5;14m[1mYAML[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=ahMIBxufNR0)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mtalk[39m[38;5;12m [39m[38;5;12mintroduces[39m[38;5;12m [39m[38;5;12mKustomize,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdeclarative[39m[38;5;12m [39m[38;5;12mapplication[39m[38;5;12m [39m[38;5;12mmanagement[39m[38;5;12m [39m[38;5;12msystem,[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mdeployments[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mdescribed[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mtemplate[39m[38;5;12m [39m[38;5;12mfree[39m[38;5;12m [39m
|
||
[38;5;12mYAML.[39m
|
||
|
||
[38;2;255;187;0m[4mIntermediate[0m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12m🧪[39m[38;5;12m [39m[38;5;14m[1mArgoCD[0m[38;5;14m[1m [0m[38;5;14m[1mGitOps[0m[38;5;14m[1m [0m[38;5;14m[1mTutorial[0m[38;5;14m[1m [0m[38;5;14m[1m-[0m[38;5;14m[1m [0m[38;5;14m[1mWorking[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mKustomize[0m[38;5;12m [39m[38;5;12m(https://redhat-scholars.github.io/argocd-tutorial/argocd-tutorial/03-kustomize.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mhands-on[39m[38;5;12m [39m[38;5;12mlab[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mKustomize[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mGitOps[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mgoes[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mKustomize[39m[38;5;12m [39m[38;5;12msyntax[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||
[38;5;12mdeploying[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mKustomized[39m[38;5;12m [39m[38;5;12mapplication.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12m📰[39m[38;5;12m [39m[38;5;14m[1m3[0m[38;5;14m[1m [0m[38;5;14m[1mways[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mcustomize[0m[38;5;14m[1m [0m[38;5;14m[1moff-the-shelf[0m[38;5;14m[1m [0m[38;5;14m[1mHelm[0m[38;5;14m[1m [0m[38;5;14m[1mcharts[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mKustomize[0m[38;5;12m [39m[38;5;12m(https://tech.aabouzaid.com/2020/09/3-ways-to-customize-off-the-shelf-helm-charts-with-kustomize-kubernetes.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12m3[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mways[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mKustomize[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||
[38;5;12mHelm[39m[38;5;12m [39m[38;5;12mtogether.[39m
|
||
|
||
[38;2;255;187;0m[4mAdvanced[0m
|
||
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mAdvanced Kustomize features[0m[38;5;12m (https://www.innoq.com/en/blog/advanced-kustomize-features/) - A guide covers more than 5 advanced Kustomize capabilities.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12m📰[39m[38;5;12m [39m[38;5;14m[1mSet[0m[38;5;14m[1m [0m[38;5;14m[1mOpenAPI[0m[38;5;14m[1m [0m[38;5;14m[1mpatch[0m[38;5;14m[1m [0m[38;5;14m[1mstrategy[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mKubernetes[0m[38;5;14m[1m [0m[38;5;14m[1mCustom[0m[38;5;14m[1m [0m[38;5;14m[1mResources[0m[38;5;12m [39m[38;5;12m(https://tech.aabouzaid.com/2022/11/set-openapi-patch-strategy-for-kubernetes-custom-resources-kustomize.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12mshows[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12mschema[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpatch[39m[38;5;12m [39m
|
||
[38;5;12mstrategy[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCRDs.[39m
|
||
[38;5;12m- 📺 [39m[38;5;14m[1mCustomizing Kustomize with Client-Side Custom Resources[0m[38;5;12m (https://www.youtube.com/watch?v=YlFUv4F5PYc) - A talk covers extending Kustomize via plugins to address common yet idiosyncratic application needs.[39m
|
||
[38;5;12m- 📺 [39m[38;5;14m[1mOwn your YAML: extending Kustomize via Plugins[0m[38;5;12m (https://www.youtube.com/watch?v=Xoh_OpLoVtI) - A talk shows how to create custom resources using Kustomize external plugins.[39m
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mKustomize Enhancement with KRM Functions[0m[38;5;12m (https://www.innoq.com/en/blog/kustomize-enhancement-with-krm-functions/) - A detailed guide covers KRM concept and how to use it in Kustomize plugins.[39m
|
||
|
||
[38;2;255;187;0m[4mTips & Tricks[0m
|
||
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mDelete a manifest from a Kustomize base[0m[38;5;12m (https://tech.aabouzaid.com/2021/05/delete-a-manifest-from-kustomize-base.html) - A handy way to delete named manifest using Kustomize patch.[39m
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mApply Kustomize builtin transformers on a single resource[0m[38;5;12m (https://tech.aabouzaid.com/2022/04/apply-kustomize-builtin-transformers-on-a-single-resource.html) - A way to use internal transformers on specific resources.[39m
|
||
[38;5;12m- 📰 [39m[38;5;14m[1mPass extra data to the Containerized KRM function[0m[38;5;12m (https://tech.aabouzaid.com/2022/12/pass-extra-data-to-the-containerized-krm-function.html) - Different cases of share data with Containerized KRM function.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mMisc[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAsdf-kustomize[0m[38;5;12m (https://github.com/Banno/asdf-kustomize) - Kustomize plugin for asdf version manager.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mRelated lists[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Kubernetes[0m[38;5;12m (https://github.com/ramitsurana/awesome-kubernetes) - A curated list of awesome Kubernetes resources.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Kubectl plugins[0m[38;5;12m (https://github.com/ishantanu/awesome-kubectl-plugins) - A curated list of awesome Kubectl plugins.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Helm[0m[38;5;12m (https://github.com/cdwv/awesome-helm) - A curated list of awesome Helm charts and resources.[39m
|