Skip to content
New issue

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

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

Already on GitHub? # to your account

Multus v4.0 Chart update #35

Closed
wants to merge 6 commits into 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?

@oujonny
Copy link

oujonny commented Nov 11, 2024

hey, I would love to use these changes.
Thanks a lot @jdambly for creating those improvements.

@dougbtv would be great if you can unblock this MR.

@jdambly-ns
Copy link
Contributor Author

closing this in favor of my other account which is a member of the org, sry for the confusion
#37

@jdambly-ns jdambly-ns closed this Nov 14, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants