Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multus v4.0 Chart update #35

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

jdambly-ns
Copy link
Contributor

@jdambly-ns jdambly-ns commented Sep 17, 2024

Summary

This PR introduces significant updates to the Multus Helm chart, improving its functionality, simplifying its setup, and aligning it with Helm 3 best practices. Key changes include updating the chart to support the new multus-thin entry point, automating configuration, and improving the overall chart logic.

Key Changes

  1. Thin Entry Point:

    • Updated the chart to utilize the new multus-thin entry point, streamlining the deployment process for this mode.
  2. Auto Configuration:

    • Switched to auto configuration, eliminating the need for a ConfigMap. This reduces the complexity of setup and makes the chart easier to manage.
  3. CRD Best Practices:

    • Moved the CustomResourceDefinitions (CRDs) into the crds/ directory, adhering to Helm 3 best practices for CRD management.
  4. Chart Logic Cleanup:

    • Replaced complex if statements with with blocks to simplify the chart logic, making it more readable and maintainable.
    • Improved support for all Multus command-line arguments, ensuring flexibility and better customization.
  5. Command Flag Support:

    • Added full support for configuring all command-line flags for the multus-thin entry point, offering enhanced control over the Multus deployment.
  6. Helm Docs Integration:

    • Integrated helm-docs to automatically generate the README.md file from the values.yaml, ensuring that documentation stays up-to-date with the chart’s configurable values.
  7. InitContainer for Installation:

    • Moved the Multus installation logic into an initContainer, improving the management of Multus binaries and configuration during startup.
  8. CI Integration:

    • Added a GitHub Action workflow for linting and testing the chart. This ensures that the chart is validated against Helm best practices, and any issues are caught during development.

Rationale

  • Simplified Setup: Auto configuration and the removal of the ConfigMap simplify deployment, reducing the number of manual steps required.
  • Alignment with Best Practices: Moving CRDs and improving logic structure ensures the chart follows Helm 3 guidelines and improves long-term maintainability.
  • Better Control and Flexibility: Supporting all command-line flags and switching to multus-thin gives users more control over their Multus configuration.

Testing & Validation

  • GitHub Action CI: The included CI workflow automatically lint tests and runs basic validation on each PR or push, ensuring consistency and quality.
  • Manual Testing: The updated chart has been manually tested in various Kubernetes environments to validate the changes and confirm proper Multus deployment.

Next Steps

  • Future enhancements will include further optimizations and possible additional testing scenarios, but this update lays the foundation for a more streamlined, manageable, and flexible Multus Helm chart.

* intial commit for multus upgrade

* intial commit for multus upgrade

* Allows manually triggering the workflow
* Trigger GitHub Action

* seems to be an issue with whereabouts that needs to be updated

* remove the dry-run flag

* break out github action per chart
* Trigger GitHub Action

* seems to be an issue with whereabouts that needs to be updated

* remove the dry-run flag

* break out github action per chart

* added better support for autoconfig

* created new readme file with helm-docs

* always create a service account

* always create a daemonset

* always create a cluster role

* always create a cluster role

* removed annoation of configmap in favour of using auto config

* refactor node selector and tolerations

* updated notes

* added template for go docs, and updated vaules file for better help ouput

* updated chart yaml with corrected urls

* updated resources and docs for this config

* cleaned up white space for notes
@jdambly
Copy link

jdambly commented Oct 1, 2024

@dougbtv I don't have write access to this repo would you be able to give me write access or merge this if you approve of this change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants