About us:
Labyrinth Labs is a one-stop-shop for DevOps, Cloud & Kubernetes! We specialize in creating powerful, scalable and cloud-native platforms tailored to elevate your business.
As a team of experienced DevOps engineers, we know how to help our customers start their journey in the cloud, address the issues they have in their current setups and provide a strategic solution to transform their infrastructure.
This is a template repository that should be use to create in-house Helm charts.
-
Create a repo from the template.
- Remove directories and files specified in
.templatesyncignoreas these are expected to be unique per chart.
- Remove directories and files specified in
-
Address all
FIXME configcomments to set the repository up. -
Place your chart in
chartsdirectory. You can have multiple charts.- Modify
Chart.yamlaccordingly!
- Modify
-
Place custom values for the chart tests in
test-values.yaml.
Important
If your chart contains custom resources, make sure CRDs or any other dependencies are installed in Kind cluster created in the pull-request workflow and chart-testing job.
- If you want to use helm-docs to generate your Helm chart documentation, modify the contents of
README.md.gotmplfile. helm-docs will use the file to generateREADME.md. Otherwise, remove helm-docs from pre-commit and you can modify the chart README.md by hand.
When developing charts in a pull request:
- Install pre-commit by running
pre-commit install. - Update the chart version in
Chart.yamlappropriately. - Commit and create a PR.
- Every push to the PR branch will automatically trigger a build that publishes the chart to a branch-specific registry location (
ghcr.io/{repository}/{branch-name}/{chart-name}:{chart-version}). - Wait for actions to succeed and approval.
- Merge PR.
Important: Merging into the main branch does NOT automatically trigger a production release. To create a production release:
- After merging your PR to main, you must manually push a tag to trigger the release.
- The tag must follow the format:
{chart-name}-{version}- Example:
chart-name-1.1.1 - The version must exactly match the version specified in the chart's
Chart.yamlfile
- Example:
- Push the tag to trigger the release:
git tag my-chart-1.1.1 git push --tags
- This will trigger the release workflow which publishes the chart to the main registry (
ghcr.io/{repository}/{chart-name}:{chart-version}).
- Always increment the chart version in
Chart.yamlwhen making changes - Use semantic versioning (e.g., 1.0.0, 1.0.1, 1.1.0, 2.0.0)
- Ensure the tag version matches the Chart.yaml version exactly
- The version check workflow will prevent duplicate versions from being published
- Helm chart artifacts are stores as OCI compliant packages in GitHub container registry.
- To add Helm chart into ArtifactHUB follow https://artifacthub.io/docs/topics/repositories/helm-charts/#oci-support.
- When the ArtifactHUB repo is created, copy its ID to artifacthub-repo.yaml. This will mark the repo as verified.
- All following releases will be automatically pushed to ArtifactHUB.
We want to provide high quality code and modules. For this reason we are using several pre-commit hooks. A pull-request to the master branch will trigger these validations and lints automatically. Please check your code before you create pull-requests. See pre-commit documentation and GitHub Actions documentation for further details.
Feel free to create an issue in this repository if you have questions, suggestions or feature requests.
See LICENSE for full details.
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
<https://www.apache.org/licenses/LICENSE-2.0>
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under
