-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
language/ansibleIssue is related to an Ansible operator projectIssue is related to an Ansible operator projectlanguage/helmIssue is related to a Helm operator projectIssue is related to a Helm operator projectneeds discussiontriage/supportIndicates an issue that is a support question.Indicates an issue that is a support question.
Milestone
Description
Describe the problem you need a feature to resolve.
Currently, Helm/Ansible plugins have been scaffolding the files common files ( config, makefile ) which are not aligned with the latest changes for Golang go/v3.
A few bad side effect regarding Helm/Ansible starts to deviate from Golang are:
- The common docs start not to work for all and no longer be common.
- Starts to be harder to know what is expected and troubleshooting the issues raised to help the users
- Starts to be more challenging to keep the projects maintained and compatible with KB and SDK common features across the board.
- It starts to be hard for users and maintainers to use and collab with them since each type will have a specific behaviour and workflow and are no longer homogeneous in the project.
- Starts to be more challenging to learn how to work with the tool and switch between the available types to attend to specific needs. ( for example, a user might see that it is better to address a requirement with helm or ansible and another with Golang. They would then expect a similar/closer behaviour and steps to do the configuration with changes and caveats that are only specific to type/language. Also, for example, to run the project locally and use the CLI features, they would expect to have the same flags for all that is common between them. )
- The complexity to do this sync/update has been increasing exponentially. How long we wait to do that then, more changing will be to address the changes and keep them aligned.
Describe the solution you'd like.
- Align/update Helm/Ansible common configuration files with Golang
- By checking the changes made shows not required to create a new plugin version for helm/ansible. The changes can be addressed in the v1 version and without breaking changes.
- Note that one of the changes made in Golang is: The manager flags
--metrics-addr
andenable-leader-election
now are named--metrics-bind-address
and--leader-elect
to be more aligned with core Kubernetes Components. More info: (c-r v0.2.0) *: bump controller-runtime to v0.2.0, update APIs #1839. So, it is required to deprecated the old flags for Ansible/Helm and add the new ones and use them by default in the scaffold. It requires changes in the internal code for Ansible/Helm and scaffolds.
Other significant changes to be addressed are:
- A new option to create the projects using ComponentConfig is introduced. For more info see its enhancement proposal and the Component config tutorial
- Makefile Help for Ansible/Helm and its refractories ( see that it was refactored for golang and we might have changes to apply for them as well.)
- Manager manifests now use
SecurityContext
to address security concerns.
Aditional Context
How to check the differences to do this sync/update?
- diff
internal/plugins/ansible/v1/scaffolds/internal/templates/config
with https://github.com/kubernetes-sigs/kubebuilder/tree/master/pkg/plugins/golang/v3/scaffolds/internal/templates/config (kb bumped version) - diff
internal/plugins/helm/v1/scaffolds/internal/templates/config
with https://github.com/kubernetes-sigs/kubebuilder/tree/master/pkg/plugins/golang/v3/scaffolds/internal/templates/config (kb bumped version) - diff helm/ansible Makefile with go/v3 Makefile
NOTE: See Plugins Ecosystem Next - Meta issue #2016. Note that the design proposed in Extract config/base plugin valid for any language/type from Golang #2015 can solve this current problem to keep the projects maintainable and aligned in the future.
Metadata
Metadata
Assignees
Labels
language/ansibleIssue is related to an Ansible operator projectIssue is related to an Ansible operator projectlanguage/helmIssue is related to a Helm operator projectIssue is related to a Helm operator projectneeds discussiontriage/supportIndicates an issue that is a support question.Indicates an issue that is a support question.