Repository navigation
Support KRM in Kustomize plugin - PolicyGenerator #7
Description
Activity
- addedenhancementNew feature or requestNew feature or request
on Jun 18, 2023 I will attempt to do this task.
Reacted by Ahmed AbouZaidI am not able to get the kustomize-plugin-kubeconform project to run. I noticed this line in the go.mod file:
replace github.com/yannh/kubeconform => ../kubeconformI assumed that I needed your fork to run this plugin. So I went to your profile and grabbed your fork: https://github.com/aabouzaid/kubeconform
After cloning the fork, I get the following error:
main.go:11:2: import "github.com/yannh/kubeconform/cmd/kubeconform" is a program, not an importable packageI'm still seeing what the best way would be to run introduce KRM functions to that PolicyGenerator project. I need a deeper understanding of KRM functions.
I just read your blog post about krm functions: https://tech.aabouzaid.com/2022/07/notes-about-krm-functions-kustomize.html
The PR you made in the Kustomize repo to fix the exec feature is very impressive!! Nice job!!
Thanks @hamza-m-masood 🙌
Take a look at the PR I created to support KRM in SopsSecretGenerator.
It will give you some directions about how to implement it.Reacted by Hamza MasoodYou can also check Kustomize Merger as a good example of using
kyaml/fn/framework.Reacted by Hamza MasoodTo be honest, I am a bit overwhelmed. I am very slowly making progress. I am still quite shaky on how KRM functions actually work and how the
resourceListtype is generated. I am not sure if theresourceListis made by kustomize and then passed to the go binary/container, or does the go program itself make theresourceList? I need to do more research to find out.I made this program to learn more: https://gist.github.com/hamza-m-masood/077d34a35a5892fcdab93eba4524f4e2
I modified the annotation and label using KRM functions in the kyaml package.@aabouzaid Looking at my program above, would
setAnnotationFnandsetLabelFnbe considered KRM functions?@hamza-m-masood It's a good start 👌
Let's have a paring session next week.Reacted by Hamza Masood
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields🗃️ Backlog
Intro
Kustomize (the official tool to create K8s IaC) adopted the new Kubernetes declarative configurations known as
KRM Functions. The new style is used as a unified way to interact with Kustomize plugins. There are 2 ways to use KRM in the plugins: Containerized KRM Functions and Exec KRM functions.Not all Kustomize plugins adopted the new format; hence the goal of this task is to support the new method in existing plugins, namely, PolicyGenerator.
Acquired Skills
By doing this task, you will gain the following skills:
The Challange
Support KRM in PolicyGenerator Kustomize plugin.
The Task
Notes and Tips
kyaml/fn/framework(the one from Kustomize) is kustomize-plugin-merger.Related Links