Skip to content

Align Helm/Ansible plugins with the changes made for Golang ( go/v3 ) #4542

@camilamacedo86

Description

@camilamacedo86

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 and enable-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?

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

Labels

language/ansibleIssue is related to an Ansible operator projectlanguage/helmIssue is related to a Helm operator projectneeds discussiontriage/supportIndicates an issue that is a support question.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions