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.
Helm chart for Keeper - node capacity reservation and overprovisioning.
Deploys node reservation and overprovisioning pods with optional schedules:
- reservation: Deploys lightweight pods that keep alive nodes specified in nodeSelector. Reservation relies on the ability to specify node size and resources in node labels, able to keep alive a node with certain size and properties. Each reservation pod keeps alive one node. Reservation affinity currently cannot be overridden.
- overprovisioning: Deploys overprovisioning pods to the cluster. Size and number of overprovisioning pods can be modified. If real workload needs the resources occupied by an overprovisioning pod, the overprovisioning pod is evicted and if no free capacity is available, should trigger scaleup of a new node for the overprovisioning pod.
-
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
