Bitnami has recently rolled out several initiatives aimed at enhancing the user experience with Helm charts. These improvements focus on better traceability and smoother integrations. Read on to discover the latest updates:
Improved Changelog and Tagging System
Automated Changelog Updates
With every pull request (PR) merge a new CHANGELOG.md file is automatically updated to list the changes included in that specific release. This automation is powered by the conventional-changelogs-cli, eliminating the need for contributors to perform this step manually.
Consistent Version Tagging
In addition to the changelog updates, every chart change now results in a commit tag formatted as “APP/VERSION”. An example of such a tag can be seen here: spark/9.0.4.
These enhancements are designed to assist users during the upgrade process and improve compatibility with automation tools like Renovate and GitHub Dependabot.
In the following example, we have a Helm chart (Airflow) with three dependencies: bitnami/redis, bitnami/postgresql, and bitnami/common. We will use Renovate to automatically detect and create Pull Requests every time there is a new version of these dependencies.
apiVersion: v2
appVersion: 2.9.1
dependencies:
- condition: redis.enabled
name: redis
repository: oci://registry-1.docker.io/bitnamicharts
version: 19.2.0
- condition: postgresql.enabled
name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: 15.2.0
- name: common
repository: oci://registry-1.docker.io/bitnamicharts
version: 2.19.3
name: airflow
version: 18.1.1
In the automated PR, we can see that it detected our helm chart:
Once this is merged, after some time we will see PRs like the following:
Checking its contents, we can see that the changelog is included in the PR description:
Each Helm chart is meticulously designed, tested, and validated using a specific set of Bitnami container images across multiple platforms. Replacing these default containers can introduce several risks:
Degraded Security and Performance: Non-Bitnami containers may not have the same security features and optimizations, leading to potential vulnerabilities and performance issues.
Broken Chart Features: The Helm chart’s functionality might rely on specific configurations or tools available only in the original Bitnami containers.
Missing Environment Variables: Substituted containers may lack critical environment variables necessary for the Helm chart to function correctly.
Security: A malicious threat actor could have switched the container images and redistributed the artifact as a legit Bitnami Helm chart.
When deploying a Helm chart, if the images that Bitnami has built the Helm chart with are replaced, a warning will appear in the console to alert the user of these potential risks. We understand that some users might need to switch the container images that Bitnami has verified, but at the same time, we believe making users aware of this change is important for the reasons above.
Branch size reduction
Bitnami has recently reduced the size of certain branches related to index.yaml, as outlined in this GitHub Issue. Previously, Helm charts were distributed using the index.yaml method, which has since been replaced by OCI through DockerHub. You can find the OCI Helm charts here.
Despite the shift to OCI, index.yaml was maintained for backward compatibility. However, the sheer number of releases and commits generated by our automated test and release pipeline caused these branches to balloon in size:
index: 2.23 GiB
archive-full-index: 987.42 MiB
This significant size increase resulted in longer clone times and made life difficult for those users looking to contribute fixes or improvements.
To address this issue, we implemented automation to squash all commits in the index-related branches. This drastic size reduction has yielded the following results:
index: 840.41 KiB
archive-full-index: 1.89 MiB
These changes significantly improve the contribution experience, making it easier and faster for our community to collaborate and contribute.
If you want to use Bitnami packages in production environments for mission-critical use cases, check out Tanzu Application Catalog—an enterprise version of Bitnami with several exclusive features that include base OS customization, app-level customization, Vulnerability Exploitability eXchange (VEX), SBOM, SLSA L3, and more.