Compare commits
103 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c3e2280489 | |||
| 1722e9bcf1 | |||
| ef6738e62e | |||
| ee9e8e95c2 | |||
| df1042fb5a | |||
| a2b0e07505 | |||
| 7a49d313a5 | |||
| 254d38f05f | |||
| 7f4f1674b8 | |||
| 569ebb06f1 | |||
| a5512f8f8a | |||
| 530070b05c | |||
| ad2ea458c4 | |||
| 6783eb019d | |||
| 6f1753c46d | |||
| e943d982ef | |||
| 213303b10e | |||
| 13d860f7f4 | |||
| 47ae89c7e6 | |||
| 7bb30fccab | |||
| f38708f864 | |||
| d9fa868eaa | |||
| 24c8634b09 | |||
| 937cb67c30 | |||
| 07afdb14c1 | |||
| 8c82240186 | |||
| 4e44c8104c | |||
| 2e97926d70 | |||
| d6c34a8349 | |||
| e85c443284 | |||
| 58292c747e | |||
| 607d4301bf | |||
| 269ab7e376 | |||
| 324617b0de | |||
| 6a897ff5a3 | |||
| 10205747f2 | |||
| c56e2aa5b4 | |||
| 167ce8cff5 | |||
| 539caf68a0 | |||
| eec4f30c67 | |||
| 9609cc2c3a | |||
| 59a5bfde2f | |||
| 98390f73c8 | |||
| 8417a0363d | |||
| 5910080e17 | |||
| 922111d2de | |||
| 4352af0abc | |||
| 164bfec8b3 | |||
| d91040c0a0 | |||
| 4942164b9a | |||
| 1082767c59 | |||
| 74c16555dd | |||
| ae6c219132 | |||
| ade37a82c7 | |||
| b249805bf3 | |||
| efd5d819f3 | |||
| b2700d990d | |||
| d0d0b28c9a | |||
| 0a162de948 | |||
| 442c98f5d1 | |||
| 73fd1235c2 | |||
| c68e979ba0 | |||
| 96e8f0db60 | |||
| 46cd92059c | |||
| 0000ad9f4b | |||
| 7642eb3dc7 | |||
| 3326cd3c38 | |||
| 5ac5e6bc03 | |||
| 54946f8caf | |||
| addc69413c | |||
| 50b0f9cf89 | |||
| bc933d1668 | |||
| 8c124da61a | |||
| b6cdead8e6 | |||
| eb78ab24e6 | |||
| e6b527aae6 | |||
| 7ece4e42dd | |||
| c2d6250a91 | |||
| bc74e6f201 | |||
| 27698eda01 | |||
| b11b62a970 | |||
| 5012c4ae5d | |||
| e539810c80 | |||
| a274eacba2 | |||
| e28ed88e2f | |||
| 1ecdba097b | |||
| 6ee68880ae | |||
| 28918e3359 | |||
| ee15631900 | |||
| 6acf4ec41f | |||
| 155d821738 | |||
| bc7d3d18ed | |||
| 3b41c38dba | |||
| 1cbdca4eab | |||
| b929abd3f8 | |||
| c51bc8745e | |||
| 63b56ae029 | |||
| a2c4d5e66c | |||
| b30f3885be | |||
| d436fe1645 | |||
| 39901f5ca4 | |||
| 6d31bcd7a0 | |||
| c439bfd2ad |
@@ -0,0 +1,105 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Extract tag version
|
||||
id: versioning
|
||||
run: |
|
||||
tag=${GITHUB_REF/refs\/tags\//}
|
||||
tag=${tag#v}
|
||||
echo ::set-output name=tag_version::$tag
|
||||
|
||||
- name: Extract chart version
|
||||
id: chart_version
|
||||
run: |
|
||||
CHART_VERSION=$(cat charts/onechart/Chart.yaml | grep ^version:)
|
||||
CHART_VERSION=${CHART_VERSION#version: }
|
||||
echo $CHART_VERSION
|
||||
echo ::set-output name=chart_version::$CHART_VERSION
|
||||
|
||||
CHART_VERSION=$(cat charts/cron-job/Chart.yaml | grep ^version:)
|
||||
CHART_VERSION=${CHART_VERSION#version: }
|
||||
echo $CHART_VERSION
|
||||
echo ::set-output name=cron_job_chart_version::$CHART_VERSION
|
||||
|
||||
- name: Ensure tag and chart version matches
|
||||
run: |
|
||||
echo "$TAG_VERSION"
|
||||
echo "$CHART_VERSION"
|
||||
echo "$CRON_JOB_CHART_VERSION"
|
||||
if [ "$TAG_VERSION" != "$CHART_VERSION" ]
|
||||
then
|
||||
echo "Tag version does not match chart version"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$TAG_VERSION" != "$CRON_JOB_CHART_VERSION" ]
|
||||
then
|
||||
echo "Tag version does not match cron-job chart version"
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
TAG_VERSION: ${{ steps.versioning.outputs.tag_version }}
|
||||
CHART_VERSION: ${{ steps.chart_version.outputs.chart_version }}
|
||||
CRON_JOB_CHART_VERSION: ${{ steps.chart_version.outputs.cron_job_chart_version }}
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: Release ${{ github.ref }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
- name: Publishing to the Helm repository
|
||||
run: |
|
||||
git config --global user.email "action@github.com"
|
||||
git config --global user.name "Github Action"
|
||||
git checkout master
|
||||
|
||||
make package
|
||||
|
||||
git add .
|
||||
git commit -m "Publishing $TAG_VERSION to the Helm repository"
|
||||
git push origin master
|
||||
env:
|
||||
TAG_VERSION: ${{ steps.versioning.outputs.tag_version }}
|
||||
|
||||
- name: Preparing the next release version
|
||||
run: |
|
||||
git config --global user.email "action@github.com"
|
||||
git config --global user.name "Github Action"
|
||||
git checkout master
|
||||
|
||||
without_major_version=${CHART_VERSION#*.}
|
||||
without_patch_version=${without_major_version%.*}
|
||||
increased_minor_version=$(($without_patch_version + 1))
|
||||
major_version=${CHART_VERSION%%.*}
|
||||
increased_version="$major_version.$increased_minor_version.0"
|
||||
echo "The new version will be $increased_version"
|
||||
|
||||
sed -i "s/version: $CHART_VERSION/version: $increased_version/" charts/onechart/Chart.yaml
|
||||
sed -i "s/version: $CHART_VERSION/version: $increased_version/" charts/cron-job/Chart.yaml
|
||||
|
||||
git status
|
||||
git add .
|
||||
git commit -m "The next release version will be $increased_version"
|
||||
git push origin master
|
||||
env:
|
||||
CHART_VERSION: ${{ steps.chart_version.outputs.chart_version }}
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
.PHONY: all lint kubeval test package debug debug-ui
|
||||
|
||||
all: lint kubeval test package
|
||||
|
||||
lint:
|
||||
@@ -26,8 +28,12 @@ kubeval:
|
||||
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.18.0
|
||||
|
||||
test:
|
||||
helm dependency update charts/onechart
|
||||
helm unittest charts/onechart
|
||||
|
||||
helm dependency update charts/cron-job
|
||||
helm unittest charts/cron-job
|
||||
|
||||
helm unittest charts/namespaces
|
||||
|
||||
package:
|
||||
@@ -43,8 +49,13 @@ package:
|
||||
helm repo index docs --url https://chart.onechart.dev
|
||||
|
||||
debug:
|
||||
helm dependency update charts/onechart
|
||||
helm template charts/onechart/ -f values.yaml --debug
|
||||
|
||||
debug-cron-job:
|
||||
helm dependency update charts/cron-job
|
||||
helm template charts/cron-job/ -f values-cron-job.yaml --debug
|
||||
|
||||
debug-ui:
|
||||
#gimlet chart configure -s charts/onechart/values.schema.json -u charts/onechart/helm-ui.json onechart/onechart
|
||||
/home/laszlo/projects/gimlet-cli/build/gimlet chart configure -s charts/onechart/values.schema.json -u charts/onechart/helm-ui.json onechart/onechart
|
||||
|
||||
@@ -4,7 +4,7 @@ A generic Helm chart for your application deployments.
|
||||
|
||||
Because no-one can remember the Kubernetes yaml syntax.
|
||||
|
||||
https://onechart.dev/
|
||||
https://gimlet.io/docs
|
||||
|
||||
## Getting started
|
||||
|
||||
@@ -36,21 +36,39 @@ See all [Examples](/examples/deploying-an-image)
|
||||
|
||||
Thank you for your interest in contributing to the Gimlet project.
|
||||
|
||||
Below are some of the guidelines and best practices for contributing to this repository:
|
||||
Below are some guidelines and best practices for contributing to this repository:
|
||||
|
||||
### Issues
|
||||
|
||||
If you are running a fork of OneChart and would like to upstream a feature, please open a pull request for it.
|
||||
|
||||
### New Features
|
||||
|
||||
If you are planning to add a new feature to OneChart, please open an issue for it first. Helm charts are prone to having too many features, and OneChart want to keep the supported use-cases in-check. Proposed features have to be generally applicable, targeting newcomers to the Kubernetes ecosystem.
|
||||
|
||||
### New Features / Components
|
||||
|
||||
If you have any ideas on new features or want to improve the existing features, you can suggest it by opening a [GitHub issue](https://github.com/gimlet-io/onechart/issues/new). Make sure to include detailed information about the feature requests, use cases, and any other information that could be helpful.
|
||||
|
||||
### Pull Request Process
|
||||
|
||||
* Fork the repository.
|
||||
* Create a new branch and make your changes.
|
||||
* Open a pull request with detailed commit message and reference issue number if applicable.
|
||||
* A maintainer will review your pull request, and help you throughout the process.
|
||||
|
||||
## Development
|
||||
|
||||
Development of OneChart does not differ from developing a regular Helm chart.
|
||||
|
||||
The source for OneChart is under `charts/onechart` where you can locate the `Chart.yaml`, `values.yaml` and the templates.
|
||||
|
||||
We write unit tests for our helm charts. Pull requests are only accepted with proper test coverage.
|
||||
|
||||
The tests are located under `charts/onechart/test` and use the https://github.com/DataDog/helm-unittest.git Helm plugin to run the tests.
|
||||
|
||||
For installation, refer to the CI workflow at `.github/workflows/build.yaml`.
|
||||
|
||||
## Release process
|
||||
|
||||
`make all` to test and package the Helm chart.
|
||||
The chart archives are put under `docs/` together with the Helm repository manifest (index.yaml)
|
||||
It is then served with Github Pages on https://chart.onechart.dev
|
||||
|
||||
Github Actions is used to automate the make calls on git tag events.
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -0,0 +1,18 @@
|
||||
apiVersion: v2
|
||||
name: common
|
||||
description: A Helm chart for Kubernetes
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: library
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.0
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- define "common.configmap.tpl" -}}
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,21 @@
|
||||
{{- define "common.envFromRef.tpl" -}}
|
||||
{{- if or (or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets) .Values.secretName }}
|
||||
envFrom: &envFrom
|
||||
{{- if .Values.vars }}
|
||||
- configMapRef:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretEnabled }}
|
||||
- secretRef:
|
||||
name: {{ include "common.robustName" $.Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretName }}
|
||||
- secretRef:
|
||||
name: {{ .Values.secretName }}
|
||||
{{- end }}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
- secretRef:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,3 +1,4 @@
|
||||
{{- define "common.fileSecret.tpl" -}}
|
||||
{{- range .Values.fileSecrets }}
|
||||
---
|
||||
kind: Secret
|
||||
@@ -11,3 +12,4 @@ data:
|
||||
{{ $key }}: {{ $val | b64enc }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,10 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Create robustName that can be used as Kubernetes resource name, and as subdomain as well
|
||||
\w – Latin letters, digits, underscore '_' .
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "common.robustName" -}}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- define "common.pvc.tpl" -}}
|
||||
{{- range .Values.volumes }}
|
||||
{{- if not .existingClaim }}
|
||||
{{- $robustName := include "common.robustName" $.Release.Name }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $robustName .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
+3
-1
@@ -1,5 +1,6 @@
|
||||
{{- define "common.sealedFileSecret.tpl" -}}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
{{- $robustName := include "common.robustName" $.Release.Name }}
|
||||
---
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
@@ -22,3 +23,4 @@ spec:
|
||||
name: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
+6
-4
@@ -1,8 +1,9 @@
|
||||
{{- if .Values.sealedSecrets }}
|
||||
{{- define "common.sealedSecret.tpl" -}}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
@@ -15,6 +16,7 @@ spec:
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- define "common.volumeMountsRef.tpl" -}}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumeMounts: &volumeMounts
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- define "common.volumesRef.tpl" -}}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumes:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
persistentVolumeClaim:
|
||||
{{- if .existingClaim }}
|
||||
claimName: {{ .existingClaim }}
|
||||
{{ else }}
|
||||
claimName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
|
||||
generated: "2021-08-05T10:18:17.533366128+02:00"
|
||||
@@ -15,4 +15,9 @@ type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.2
|
||||
version: 0.34.0
|
||||
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 0.1.0
|
||||
repository: file://../common
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,71 @@
|
||||
[
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/image",
|
||||
"#/properties/shell",
|
||||
"#/properties/command"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/replicas": {
|
||||
"ui:widget": "range"
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Basics",
|
||||
"icon": "M17 8l4 4m0 0l-4 4m4-4H3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/resources"
|
||||
],
|
||||
"uiSchema": {
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Resources",
|
||||
"icon": "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/vars"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/vars": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Environment Variables",
|
||||
"icon": "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/sealedSecrets"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/sealedSecrets": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Sealed Secrets",
|
||||
"icon": "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/volumes"
|
||||
],
|
||||
"uiSchema": {},
|
||||
"metaData": {
|
||||
"name": "Volumes",
|
||||
"icon": "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -48,7 +48,7 @@ Selector labels
|
||||
*/}}
|
||||
{{- define "helm-chart.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "helm-chart.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/instance: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
@@ -61,3 +61,12 @@ Create the name of the service account to use
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create robustName that can be used as Kubernetes resource name, and as subdomain as well
|
||||
\w – Latin letters, digits, underscore '_' .
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "robustName" -}}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,13 +1 @@
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.configmap.tpl" . -}}
|
||||
|
||||
@@ -7,10 +7,9 @@ metadata:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
spec:
|
||||
schedule: {{ .Values.schedule | quote }}
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
concurrencyPolicy: Forbid
|
||||
startingDeadlineSeconds: 120
|
||||
{{- with .Values.constraints }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
@@ -30,37 +29,20 @@ spec:
|
||||
- {{ .Values.shell }}
|
||||
- -c
|
||||
- {{ .Values.command | quote }}
|
||||
envFrom:
|
||||
{{- if .Values.vars }}
|
||||
- configMapRef:
|
||||
name: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secret.enabled }}
|
||||
- secretRef:
|
||||
name: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
{{- end }}
|
||||
{{- include "common.envFromRef.tpl" . | nindent 14 }}
|
||||
{{- include "common.volumeMountsRef.tpl" . | nindent 14 }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 16 }}
|
||||
volumes:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{ with .Values.nodeSelector }}
|
||||
{{- include "common.volumesRef.tpl" . | nindent 10 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{ with .Values.affinity }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{ with .Values.tolerations }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.fileSecret.tpl" . -}}
|
||||
@@ -1,15 +1 @@
|
||||
{{- range .Values.volumes }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- include "common.pvc.tpl" . -}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedFileSecret.tpl" . -}}
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedSecret.tpl" . -}}
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
content:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME
|
||||
name: release-name
|
||||
- it: Should not reference configmap if vars are not set
|
||||
asserts:
|
||||
- isNull:
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
suite: test cron job
|
||||
templates:
|
||||
- cronJob.yaml
|
||||
tests:
|
||||
- it: Should have default constraints
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.successfulJobsHistoryLimit
|
||||
value: 1
|
||||
- it: Should constraints be configurable
|
||||
set:
|
||||
constraints:
|
||||
successfulJobsHistoryLimit: 2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.successfulJobsHistoryLimit
|
||||
value: 2
|
||||
@@ -0,0 +1,28 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- cronJob.yaml
|
||||
tests:
|
||||
- it: Should mount volume
|
||||
set: &values
|
||||
sealedFileSecrets:
|
||||
- name: google-account-key
|
||||
path: /google-account-key
|
||||
filesToMount:
|
||||
- name: key.json
|
||||
sourcePath: my-google-acoount-key.json
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].volumeMounts
|
||||
value:
|
||||
- name: google-account-key
|
||||
mountPath: /google-account-key
|
||||
readOnly: true
|
||||
- it: Should reference volume
|
||||
set: *values
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.jobTemplate.spec.template.spec.volumes
|
||||
value:
|
||||
- name: google-account-key
|
||||
secret:
|
||||
secretName: RELEASE-NAME-google-account-key
|
||||
@@ -5,16 +5,16 @@ templates:
|
||||
tests:
|
||||
- it: Should reference secret if secret is enabled
|
||||
set:
|
||||
secret.enabled: true
|
||||
secretEnabled: true
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
content:
|
||||
secretRef:
|
||||
name: RELEASE-NAME
|
||||
name: release-name
|
||||
- it: Should not reference secret if secret is disabled
|
||||
set:
|
||||
secret.enabled: false
|
||||
secretEnabled: false
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "http://example.com/example.json",
|
||||
"type": "object",
|
||||
"title": "The root schema",
|
||||
"description": "The root schema comprises the entire JSON document.",
|
||||
"default": {},
|
||||
"required": [],
|
||||
"properties": {
|
||||
"image": {
|
||||
"$id": "#/properties/image",
|
||||
"type": "object",
|
||||
"title": "Image",
|
||||
"description": "The image to deploy",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"repository": "nginx",
|
||||
"tag": "latest"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"repository",
|
||||
"tag"
|
||||
],
|
||||
"properties": {
|
||||
"repository": {
|
||||
"$id": "#/properties/image/properties/repository",
|
||||
"type": "string",
|
||||
"title": "Repository",
|
||||
"description": "",
|
||||
"default": "nginx",
|
||||
"examples": [
|
||||
"nginx"
|
||||
]
|
||||
},
|
||||
"tag": {
|
||||
"$id": "#/properties/image/properties/tag",
|
||||
"type": "string",
|
||||
"title": "Tag",
|
||||
"description": "",
|
||||
"default": "1.19.3",
|
||||
"examples": [
|
||||
"latest"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"podAnnotations": {
|
||||
"$id": "#/properties/podAnnotations",
|
||||
"type": "object",
|
||||
"title": "The podAnnotations schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"resources": {
|
||||
"$id": "#/properties/resources",
|
||||
"type": "object",
|
||||
"title": "",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"requests": {
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
},
|
||||
"limits": {
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {
|
||||
"requests": {
|
||||
"$id": "#/properties/resources/properties/requests",
|
||||
"type": "object",
|
||||
"title": "Requests",
|
||||
"description": "The typical resources your app uses",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"cpu",
|
||||
"memory"
|
||||
],
|
||||
"properties": {
|
||||
"cpu": {
|
||||
"$id": "#/properties/resources/properties/requests/properties/cpu",
|
||||
"type": "string",
|
||||
"title": "CPU",
|
||||
"description": "",
|
||||
"default": "200m",
|
||||
"examples": [
|
||||
"200m"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"$id": "#/properties/resources/properties/requests/properties/memory",
|
||||
"type": "string",
|
||||
"title": "Memory",
|
||||
"description": "",
|
||||
"default": "200Mi",
|
||||
"examples": [
|
||||
"200mi"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"$id": "#/properties/resources/properties/limits",
|
||||
"type": "object",
|
||||
"title": "Limits",
|
||||
"description": "The maximum resources your app may use",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"cpu",
|
||||
"memory"
|
||||
],
|
||||
"properties": {
|
||||
"cpu": {
|
||||
"$id": "#/properties/resources/properties/limits/properties/cpu",
|
||||
"type": "string",
|
||||
"title": "CPU",
|
||||
"description": "The hard ceiling for the app's CPU usage. The app will be throttled to this limit. 1000m or 1000 CPU shares = 1 CPU core",
|
||||
"default": "200m",
|
||||
"examples": [
|
||||
"200m"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"$id": "#/properties/resources/properties/limits/properties/memory",
|
||||
"type": "string",
|
||||
"title": "Memory",
|
||||
"description": "The hard ceiling for the app's memory usage. The app will be RESTARTED if it reaches this limit",
|
||||
"default": "200Mi",
|
||||
"examples": [
|
||||
"200mi"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nodeSelector": {
|
||||
"$id": "#/properties/nodeSelector",
|
||||
"type": "object",
|
||||
"title": "The nodeSelector schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"tolerations": {
|
||||
"$id": "#/properties/tolerations",
|
||||
"type": "array",
|
||||
"title": "The tolerations schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": [],
|
||||
"examples": [
|
||||
[]
|
||||
],
|
||||
"additionalItems": true,
|
||||
"items": {
|
||||
"$id": "#/properties/tolerations/items"
|
||||
}
|
||||
},
|
||||
"affinity": {
|
||||
"$id": "#/properties/affinity",
|
||||
"type": "object",
|
||||
"title": "The affinity schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"secret": {
|
||||
"$id": "#/properties/secret",
|
||||
"type": "object",
|
||||
"title": "The secret schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"enabled": false
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"enabled"
|
||||
],
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"$id": "#/properties/secret/properties/enabled",
|
||||
"type": "boolean",
|
||||
"title": "The enabled schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"shell": {
|
||||
"$id": "#/properties/shell",
|
||||
"type": "string",
|
||||
"title": "Shell",
|
||||
"description": "The shell to use",
|
||||
"default": "/bin/sh"
|
||||
},
|
||||
"command": {
|
||||
"$id": "#/properties/command",
|
||||
"type": "string",
|
||||
"title": "Command",
|
||||
"description": "The command to run in the cronjob",
|
||||
"default": "echo \"I'm alive\""
|
||||
},
|
||||
"vars": {
|
||||
"$id": "#/properties/vars",
|
||||
"type": "object",
|
||||
"title": "Environment variables",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"VAR_1": "value 1",
|
||||
"VAR_2": "value 2"
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"sealedSecrets": {
|
||||
"$id": "#/properties/sealedSecrets",
|
||||
"type": "object",
|
||||
"title": "Sealed Secrets",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"VAR_1": "value 1",
|
||||
"VAR_2": "value 2"
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"volumes": {
|
||||
"$id": "#/properties/volumes",
|
||||
"type": "array",
|
||||
"title": "Volumes",
|
||||
"default": [],
|
||||
"additionalItems": true,
|
||||
"items": {
|
||||
"$id": "#/properties/volumes/items",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
|
||||
"type": "string",
|
||||
"title": "Name",
|
||||
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
|
||||
"default": "data"
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The mount path inside the container",
|
||||
"default": "/data"
|
||||
},
|
||||
"size": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/size",
|
||||
"type": "string",
|
||||
"title": "Size",
|
||||
"description": "",
|
||||
"default": "10Gi"
|
||||
},
|
||||
"storageClass": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/storageClass",
|
||||
"type": "string",
|
||||
"title": "Storage Class",
|
||||
"description": "The slug indicating the disk type in your cloud provider. `standard` on Google Cloud, `default` on Azure; `do-block-storage` on Digital Ocean",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
@@ -27,3 +27,9 @@ affinity: {}
|
||||
|
||||
secret:
|
||||
enabled: false
|
||||
|
||||
constraints:
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
concurrencyPolicy: Forbid
|
||||
startingDeadlineSeconds: 120
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
|
||||
generated: "2021-08-05T10:39:10.053810673+02:00"
|
||||
@@ -15,4 +15,9 @@ type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.18.0
|
||||
version: 0.34.0
|
||||
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 0.1.0
|
||||
repository: file://../common
|
||||
|
||||
Binary file not shown.
@@ -19,8 +19,7 @@
|
||||
"schemaIDs": [
|
||||
"#/properties/resources"
|
||||
],
|
||||
"uiSchema": {
|
||||
},
|
||||
"uiSchema": {},
|
||||
"metaData": {
|
||||
"name": "Resources",
|
||||
"icon": "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
||||
@@ -28,7 +27,8 @@
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/probe"
|
||||
"#/properties/probe",
|
||||
"#/properties/livenessProbe"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/probe": {
|
||||
@@ -49,6 +49,25 @@
|
||||
"ui:widget": "range"
|
||||
}
|
||||
}
|
||||
},
|
||||
"#/properties/livenessProbe": {
|
||||
"settings": {
|
||||
"initialDelaySeconds": {
|
||||
"ui:widget": "range"
|
||||
},
|
||||
"periodSeconds": {
|
||||
"ui:widget": "range"
|
||||
},
|
||||
"successThreshold": {
|
||||
"ui:widget": "range"
|
||||
},
|
||||
"timeoutSeconds": {
|
||||
"ui:widget": "range"
|
||||
},
|
||||
"failureThreshold": {
|
||||
"ui:widget": "range"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
@@ -74,6 +93,7 @@
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/secretEnabled",
|
||||
"#/properties/sealedSecrets"
|
||||
],
|
||||
"uiSchema": {
|
||||
@@ -84,7 +104,7 @@
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Sealed Secrets",
|
||||
"name": "Secrets",
|
||||
"icon": "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
|
||||
}
|
||||
},
|
||||
@@ -104,7 +124,7 @@
|
||||
],
|
||||
"uiSchema": {},
|
||||
"metaData": {
|
||||
"name": "Host Names",
|
||||
"name": "Ingress",
|
||||
"icon": "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
|
||||
}
|
||||
},
|
||||
@@ -118,5 +138,17 @@
|
||||
"name": "High Availability",
|
||||
"icon": "M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/podAnnotations",
|
||||
"#/properties/gitSha",
|
||||
"#/properties/gitRepository"
|
||||
],
|
||||
"uiSchema": {},
|
||||
"metaData": {
|
||||
"name": "Misc",
|
||||
"icon": "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
@@ -48,7 +48,7 @@ Selector labels
|
||||
*/}}
|
||||
{{- define "helm-chart.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "helm-chart.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/instance: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
@@ -68,5 +68,5 @@ Create robustName that can be used as Kubernetes resource name, and as subdomain
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "robustName" -}}
|
||||
{{ regexReplaceAll "[^0-9A-Za-z_\\.]+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" | trimPrefix "-" }}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,13 +1 @@
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.configmap.tpl" . -}}
|
||||
|
||||
@@ -5,11 +5,25 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
{{- if .Values.gitSha }}
|
||||
annotations:
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 6 }}
|
||||
{{- $singleReplica := eq (.Values.replicas | int64) 1 }}
|
||||
{{- $strategyNotDefined := not .Values.strategy }}
|
||||
{{- if and (and .Values.volumes $singleReplica) $strategyNotDefined}}
|
||||
strategy:
|
||||
type: Recreate
|
||||
{{- end }}
|
||||
{{- if .Values.strategy }}
|
||||
strategy:
|
||||
type: {{ .Values.strategy }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -17,6 +31,12 @@ spec:
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .Values.gitRepository }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
@@ -26,6 +46,9 @@ spec:
|
||||
{{- end }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if .Values.serviceAccount }}
|
||||
serviceAccountName: {{ .Values.serviceAccount }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ template "robustName" .Release.Name }}
|
||||
securityContext: &securityContext
|
||||
@@ -38,28 +61,18 @@ spec:
|
||||
- -c
|
||||
- {{ .Values.command | quote }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
|
||||
envFrom: &envFrom
|
||||
{{- if .Values.vars }}
|
||||
- configMapRef:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretEnabled }}
|
||||
- secretRef:
|
||||
name: {{ .Values.secretName | default (include "robustName" $.Release.Name) }}
|
||||
{{- end }}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
- secretRef:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.envFromRef.tpl" . | nindent 10 }}
|
||||
ports:
|
||||
{{- if not .Values.containerPortYaml }}
|
||||
{{- if not .Values.ports }}
|
||||
- name: http
|
||||
containerPort: {{ .Values.containerPort }}
|
||||
protocol: TCP
|
||||
{{ else }}
|
||||
{{- toYaml .Values.containerPortYaml | nindent 12 }}
|
||||
{{- range .Values.ports }}
|
||||
- name: {{ .name }}
|
||||
containerPort: {{ .containerPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.probe.enabled }}
|
||||
readinessProbe:
|
||||
@@ -71,33 +84,29 @@ spec:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumeMounts: &volumeMounts
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: {{ .Values.livenessProbe.path }}
|
||||
port: {{ .Values.containerPort }}
|
||||
scheme: HTTP
|
||||
{{- with .Values.livenessProbe.settings }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.volumeMountsRef.tpl" . | nindent 10 }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- if .Values.debugSidecarEnabled }}
|
||||
- name: {{ template "robustName" .Release.Name }}-debug
|
||||
{{- if .Values.sidecar }}
|
||||
- name: {{ template "robustName" .Release.Name }}-sidecar
|
||||
securityContext: *securityContext
|
||||
image: {{ .Values.debugSidecar.image }}
|
||||
image: {{ .Values.sidecar.repository }}:{{ .Values.sidecar.tag }}
|
||||
{{- if .Values.sidecar.command }}
|
||||
command:
|
||||
- {{ .Values.debugSidecar.shell }}
|
||||
- {{ .Values.sidecar.shell }}
|
||||
- -c
|
||||
- {{ .Values.debugSidecar.command | quote }}
|
||||
- {{ .Values.sidecar.command | quote }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
|
||||
envFrom: *envFrom
|
||||
{{- end }}
|
||||
@@ -105,24 +114,7 @@ spec:
|
||||
volumeMounts: *volumeMounts
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumes:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.volumesRef.tpl" . | nindent 6 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.fileSecret.tpl" . -}}
|
||||
@@ -1,34 +1,57 @@
|
||||
{{- $labels := include "helm-chart.labels" . -}}
|
||||
|
||||
{{- with .Values.ingress -}}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
{{- if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{/* OneChart ingress snippet */}}
|
||||
{{- define "onechart.ingress" }}
|
||||
{{- $robustName := include "robustName" .root.Release.Name -}}
|
||||
{{- $resourceName := $robustName -}}
|
||||
{{- if .longName }}
|
||||
{{- $resourceName = printf "%s-%s" $robustName (include "robustName" .ingress.host) -}}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $robustName }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
name: {{ $resourceName }}
|
||||
namespace: {{ .root.Release.Namespace }}
|
||||
labels:
|
||||
{{- $labels | nindent 4 }}
|
||||
{{- with .annotations }}
|
||||
{{- include "helm-chart.labels" .root | nindent 4 }}
|
||||
{{- if or (or .root.Values.gitSha .ingress.annotations) .root.Values.gitRepository }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- if .ingress.annotations }}
|
||||
{{- toYaml .ingress.annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .root.Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .root.Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- if .root.Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .root.Values.gitRepository }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if default false .tlsEnabled }}
|
||||
{{- if .ingress.ingressClassName }}
|
||||
ingressClassName: {{ .ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
{{- if default false .ingress.tlsEnabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ template "robustName" .host | quote }}
|
||||
secretName: {{ printf "tls-%s" $robustName }}
|
||||
- {{ .ingress.host | quote }}
|
||||
secretName: {{ printf "tls-%s" $resourceName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ template "robustName" .host | quote }}
|
||||
- host: {{ .ingress.host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: {{ template "robustName" $.Release.Name }}
|
||||
servicePort: {{ $.Values.containerPort }}
|
||||
- path: {{ .ingress.path | default "/" | quote }}
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: {{ $robustName }}
|
||||
port:
|
||||
number: {{ if .root.Values.svcPort }}{{ .root.Values.svcPort }}{{ else }}{{ .root.Values.containerPort }}{{ end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.ingress }}
|
||||
{{- template "onechart.ingress" (dict "root" $ "ingress" .) }}
|
||||
{{- end }}
|
||||
|
||||
{{- range .Values.ingresses }}
|
||||
{{template "onechart.ingress" (dict "root" $ "ingress" . "longName" true) }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,16 +1 @@
|
||||
{{- range .Values.volumes }}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $robustName .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- include "common.pvc.tpl" . -}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedFileSecret.tpl" . -}}
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedSecret.tpl" . -}}
|
||||
@@ -5,12 +5,42 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
{{- if or .Values.gitRepository .Values.gitSha }}
|
||||
annotations:
|
||||
{{- if .Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .Values.gitRepository }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ if .Values.nodePortEnabled }}NodePort{{ else }}ClusterIP{{ end }}
|
||||
type: {{ if .Values.nodePortEnabled }}NodePort{{ else if .Values.loadbalancerEnabled }}LoadBalancer{{ else }}ClusterIP{{ end }}
|
||||
{{- if .Values.stickySessions }}
|
||||
sessionAffinityConfig:
|
||||
clientIP:
|
||||
timeoutSeconds: 10800
|
||||
externalTrafficPolicy: Local
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.containerPort }}
|
||||
{{- if not .Values.ports }}
|
||||
- port: {{ if .Values.svcPort }}{{ .Values.svcPort }}{{ else }}{{ .Values.containerPort }}{{ end }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{- if .Values.nodePort }}
|
||||
nodePort: {{ .Values.nodePort }}
|
||||
{{- end }}
|
||||
{{ else }}
|
||||
{{- range .Values.ports }}
|
||||
- name: {{ .name }}
|
||||
port: {{ if .svcPort }}{{ .svcPort }}{{ else }}{{ .containerPort }}{{ end }}
|
||||
{{- if .nodePort }}
|
||||
nodePort: {{ .nodePort }}
|
||||
{{- end }}
|
||||
targetPort: {{ .name }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 4 }}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should add a debug sidecar
|
||||
set:
|
||||
debugSidecarEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
@@ -0,0 +1,45 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should set a liveness probe
|
||||
set:
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
value:
|
||||
httpGet:
|
||||
path: "/"
|
||||
port: 80
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
- it: Should not set a livenessProbe
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
- it: Should tune liveness probe
|
||||
set:
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
settings:
|
||||
periodSeconds: 30
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
value:
|
||||
httpGet:
|
||||
path: "/"
|
||||
port: 80
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
+10
-19
@@ -5,35 +5,26 @@ templates:
|
||||
tests:
|
||||
- it: Should set custom ports
|
||||
set:
|
||||
containerPortYaml:
|
||||
- port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
ports:
|
||||
- containerPort: 21
|
||||
name: ftp
|
||||
- port: 3001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- containerPort: 3001
|
||||
name: passive-1
|
||||
- port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].ports
|
||||
value:
|
||||
- port: 21
|
||||
targetPort: ftp
|
||||
- name: ftp
|
||||
containerPort: 21
|
||||
protocol: TCP
|
||||
name: ftp
|
||||
- port: 3001
|
||||
targetPort: passive-1
|
||||
- name: passive-1
|
||||
containerPort: 3001
|
||||
protocol: TCP
|
||||
name: passive-1
|
||||
- port: 3002
|
||||
targetPort: passive-2
|
||||
- name: passive-2
|
||||
containerPort: 3002
|
||||
protocol: TCP
|
||||
name: passive-2
|
||||
- it: Should set default port
|
||||
asserts:
|
||||
- equal:
|
||||
@@ -1,6 +1,6 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- sealed-file-secret.yaml
|
||||
- sealedFileSecret.yaml
|
||||
tests:
|
||||
- it: Should generate a sealed secret with the file
|
||||
set: &values
|
||||
@@ -13,6 +13,11 @@ tests:
|
||||
{
|
||||
"what": "this is a fixture"
|
||||
}
|
||||
- name: deploy-key
|
||||
path: /deploy-key
|
||||
filesToMount:
|
||||
- name: deploy-key
|
||||
source: xyz
|
||||
# sourcePath: my-google-account-key.json
|
||||
asserts:
|
||||
- equal:
|
||||
@@ -21,3 +26,5 @@ tests:
|
||||
{
|
||||
"what": "this is a fixture"
|
||||
}
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
|
||||
@@ -12,15 +12,8 @@ tests:
|
||||
content:
|
||||
secretRef:
|
||||
name: release-name
|
||||
- it: Should not reference secret if secret is disabled
|
||||
- it: Should reference secret by name
|
||||
set:
|
||||
secretEnabled: false
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.template.spec.containers[0].envFrom
|
||||
- it: Should not reference secret if secret is disabled
|
||||
set:
|
||||
secretEnabled: true
|
||||
secretName: my-custom-secret
|
||||
asserts:
|
||||
- contains:
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should inject a sidecar if one is specified
|
||||
set:
|
||||
sidecar:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
- it: Should inject a debug sidecar with shell and command specified
|
||||
set:
|
||||
sidecar:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
shell: "/bin/bash"
|
||||
command: "while true; do sleep 30; done;"
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
@@ -31,3 +31,46 @@ tests:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: RELEASE-NAME-data
|
||||
- it: Should recreate to avoid stuck deployments
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: Recreate
|
||||
- it: Should strategy take precedence
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
strategy: RollingUpdate
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: RollingUpdate
|
||||
- it: Should strategy be set
|
||||
set:
|
||||
strategy: Dummy
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: Dummy
|
||||
- it: Should use the existing claim
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
existingClaim: my-static-claim
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.volumes
|
||||
value:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: my-static-claim
|
||||
|
||||
@@ -20,10 +20,14 @@ tests:
|
||||
- host: chart-example.local
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: release-name
|
||||
servicePort: 80
|
||||
- it: Should conform to DNS names
|
||||
- path: "/"
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: release-name
|
||||
port:
|
||||
number: 80
|
||||
- it: Should pass ingress host name as is, user must sanitize it
|
||||
set:
|
||||
ingress:
|
||||
host: feature/my_branch.local
|
||||
@@ -33,25 +37,84 @@ tests:
|
||||
path: spec.tls
|
||||
value:
|
||||
- hosts:
|
||||
- feature-my-branch.local
|
||||
- feature/my_branch.local
|
||||
secretName: tls-release-name
|
||||
- equal:
|
||||
path: spec.rules
|
||||
value:
|
||||
- host: feature-my-branch.local
|
||||
- host: feature/my_branch.local
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: release-name
|
||||
servicePort: 80
|
||||
- path: "/"
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: release-name
|
||||
port:
|
||||
number: 80
|
||||
- it: Should set Ingress annotation
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
just/a-random: annotation
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
just/a-random: annotation
|
||||
- it: Should set ingress class
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
ingressClassName: nginx
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ingressClassName
|
||||
value: nginx
|
||||
- it: Should generate multiple ingresses
|
||||
set:
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
- it: Should generate multiple ingresses
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 3
|
||||
- it: Should have unique TLS secret names
|
||||
set:
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
tlsEnabled: true
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
tlsEnabled: true
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.tls
|
||||
value:
|
||||
- hosts:
|
||||
- chart-example.local
|
||||
secretName: tls-release-name-chart-example-local
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
suite: test ingress
|
||||
templates:
|
||||
- ingress.yaml
|
||||
tests:
|
||||
- it: Should default
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].path
|
||||
value: "/"
|
||||
- it: Should use path
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
path: "/mypath"
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].path
|
||||
value: "/mypath"
|
||||
@@ -0,0 +1,23 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- ingress.yaml
|
||||
tests:
|
||||
- it: Should use container port
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
containerPort: 1234
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].backend.service.port.number
|
||||
value: 1234
|
||||
- it: Should use service port
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
svcPort: 1234
|
||||
containerPort: 5678
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].backend.service.port.number
|
||||
value: 1234
|
||||
@@ -0,0 +1,18 @@
|
||||
suite: test service
|
||||
templates:
|
||||
- ingress.yaml
|
||||
tests:
|
||||
- it: Should set Gimlet taxonomy on Ingress
|
||||
set:
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
tlsEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
gimlet.io/git-repository: github.com/laszlocph/demo-app
|
||||
gimlet.io/git-sha: xyz
|
||||
|
||||
@@ -13,3 +13,12 @@ tests:
|
||||
- equal:
|
||||
path: spec.storageClassName
|
||||
value: default
|
||||
- it: Should not generate a claim when using existing claim
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
existingClaim: my-static-claim
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- sealed-secret.yaml
|
||||
- sealedSecret.yaml
|
||||
tests:
|
||||
- it: Should put sealed secrets in SealedSecret
|
||||
set:
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set containerPort as default
|
||||
set:
|
||||
containerPort: 11111
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].port
|
||||
value: 11111
|
||||
- it: Should set svcPort if it is defined
|
||||
set:
|
||||
containerPort: 11111
|
||||
svcPort: 22222
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].port
|
||||
value: 22222
|
||||
- it: Should set nodePort if it is defined
|
||||
set:
|
||||
containerPort: 11111
|
||||
nodePort: 33333
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].nodePort
|
||||
value: 33333
|
||||
@@ -0,0 +1,66 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set custom ports
|
||||
set:
|
||||
ports:
|
||||
- containerPort: 21
|
||||
name: ftp
|
||||
- containerPort: 3001
|
||||
name: passive-1
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- name: ftp
|
||||
port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
- name: passive-1
|
||||
port: 3001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- name: passive-2
|
||||
port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- it: Should set custom svc port
|
||||
set:
|
||||
ports:
|
||||
- containerPort: 2021
|
||||
svcPort: 21
|
||||
name: ftp
|
||||
- containerPort: 3001
|
||||
nodePort: 33001
|
||||
name: passive-1
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- name: ftp
|
||||
port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
- name: passive-1
|
||||
port: 3001
|
||||
nodePort: 33001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- name: passive-2
|
||||
port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- it: Should set default port
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
@@ -0,0 +1,11 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set NodePort if flag enabled
|
||||
set:
|
||||
stickySessions: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.externalTrafficPolicy
|
||||
value: Local
|
||||
@@ -0,0 +1,14 @@
|
||||
suite: test service
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set Gimlet taxonomy
|
||||
set:
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
gimlet.io/git-repository: github.com/laszlocph/demo-app
|
||||
gimlet.io/git-sha: xyz
|
||||
@@ -14,3 +14,10 @@ tests:
|
||||
- equal:
|
||||
path: spec.type
|
||||
value: NodePort
|
||||
- it: Should set LoadBalancer if flag enabled
|
||||
set:
|
||||
loadbalancerEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.type
|
||||
value: LoadBalancer
|
||||
|
||||
@@ -133,8 +133,8 @@
|
||||
"podAnnotations": {
|
||||
"$id": "#/properties/podAnnotations",
|
||||
"type": "object",
|
||||
"title": "The podAnnotations schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"title": "Pod annotations",
|
||||
"description": "Annotations to place on pods",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
@@ -142,6 +142,20 @@
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"gitSha": {
|
||||
"$id": "#/properties/gitSha",
|
||||
"type": "string",
|
||||
"title": "Commit Hash",
|
||||
"description": "The git hash that you are deploying",
|
||||
"default": ""
|
||||
},
|
||||
"gitRepository": {
|
||||
"$id": "#/properties/gitRepository",
|
||||
"type": "string",
|
||||
"title": "GitHub Repository",
|
||||
"description": "The git repository that you are deploying",
|
||||
"default": ""
|
||||
},
|
||||
"podSecurityContext": {
|
||||
"$id": "#/properties/podSecurityContext",
|
||||
"type": "object",
|
||||
@@ -334,7 +348,7 @@
|
||||
"$id": "#/properties/probe",
|
||||
"type": "object",
|
||||
"title": "Healthcheck",
|
||||
"description": "The Kubernetes Readiness probe that determines whether your app is healthy and if should receive traffic",
|
||||
"description": "The Kubernetes Readiness probe determines whether your app is healthy and if it should receive traffic",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
@@ -385,10 +399,10 @@
|
||||
"$id": "#/properties/probe/properties/settings/properties/initialDelaySeconds",
|
||||
"type": "integer",
|
||||
"title": "Initial Delay Seconds",
|
||||
"description": "Number of seconds after the container has started before the probes is initiated",
|
||||
"description": "Number of seconds after the container has started before the probe is initiated",
|
||||
"default": 0,
|
||||
"minimum": 0,
|
||||
"maximum": 60
|
||||
"maximum": 180
|
||||
},
|
||||
"periodSeconds": {
|
||||
"$id": "#/properties/probe/properties/settings/properties/periodSeconds",
|
||||
@@ -421,7 +435,107 @@
|
||||
"$id": "#/properties/probe/properties/settings/properties/failureThreshold",
|
||||
"type": "integer",
|
||||
"title": "Failure Threshold",
|
||||
"description": "When a probe fails, Kubernetes will tries this many times before giving up. Giving up the pod will be marked Unready and won't get any traffic",
|
||||
"description": "When a probe fails, Kubernetes will try this many times before giving up. Giving up the pod will be marked Unready and won't get any traffic",
|
||||
"default": 3,
|
||||
"minimum": 1,
|
||||
"maximum": 15
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"livenessProbe": {
|
||||
"$id": "#/properties/livenessProbe",
|
||||
"type": "object",
|
||||
"title": "Liveness check",
|
||||
"description": "The Kubernetes Liveness probe determines whether your app is healthy and if it should be restarted",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"enabled": false,
|
||||
"path": "/"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"enabled",
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"$id": "#/properties/livenessProbe/properties/enabled",
|
||||
"type": "boolean",
|
||||
"title": "",
|
||||
"description": "",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/livenessProbe/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "Fill in the description",
|
||||
"default": "/",
|
||||
"examples": [
|
||||
"/"
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings",
|
||||
"type": "object",
|
||||
"title": "Probe thresholds",
|
||||
"description": "Tune the probe behavior",
|
||||
"examples": [
|
||||
{
|
||||
"failureThreshold": 3,
|
||||
"periodSeconds": 10,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 10
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"initialDelaySeconds": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings/properties/initialDelaySeconds",
|
||||
"type": "integer",
|
||||
"title": "Initial Delay Seconds",
|
||||
"description": "Number of seconds after the container has started before the probe is initiated",
|
||||
"default": 0,
|
||||
"minimum": 0,
|
||||
"maximum": 180
|
||||
},
|
||||
"periodSeconds": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings/properties/periodSeconds",
|
||||
"type": "integer",
|
||||
"title": "Period",
|
||||
"description": "How often (in seconds) to perform the probe",
|
||||
"default": 10,
|
||||
"minimum": 1,
|
||||
"maximum": 60
|
||||
},
|
||||
"successThreshold": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings/properties/successThreshold",
|
||||
"type": "integer",
|
||||
"title": "Success Threshold",
|
||||
"description": "Minimum consecutive successes for the probe to be considered successful after having failed",
|
||||
"default": 1,
|
||||
"minimum": 1,
|
||||
"maximum": 15
|
||||
},
|
||||
"timeoutSeconds": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings/properties/timeoutSeconds",
|
||||
"type": "integer",
|
||||
"title": "Timeout",
|
||||
"description": "Number of seconds after which the probe times out",
|
||||
"default": 3,
|
||||
"minimum": 1,
|
||||
"maximum": 30
|
||||
},
|
||||
"failureThreshold": {
|
||||
"$id": "#/properties/livenessProbe/properties/settings/properties/failureThreshold",
|
||||
"type": "integer",
|
||||
"title": "Failure Threshold",
|
||||
"description": "When a probe fails, Kubernetes will try this many times before giving up. Giving up the pod will be marked Unready and won't get any traffic",
|
||||
"default": 3,
|
||||
"minimum": 1,
|
||||
"maximum": 15
|
||||
@@ -484,10 +598,17 @@
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"secretEnabled": {
|
||||
"$id": "#/properties/secretEnabled",
|
||||
"type": "boolean",
|
||||
"title": "Existing secret",
|
||||
"description": "If enabled, a secret will be referenced from the deployment whose name matches the deployment name",
|
||||
"default": false
|
||||
},
|
||||
"sealedSecrets": {
|
||||
"$id": "#/properties/sealedSecrets",
|
||||
"type": "object",
|
||||
"title": "Sealed Secrets",
|
||||
"title": "Sealed secrets",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
@@ -527,6 +648,16 @@
|
||||
"my-release.mycompany.com"
|
||||
]
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/ingress/properties/ingressPath",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The API path where your service is accessible",
|
||||
"default": "/",
|
||||
"examples": [
|
||||
"/api/myservice"
|
||||
]
|
||||
},
|
||||
"tlsEnabled": {
|
||||
"$id": "#/properties/ingress/properties/tlsEnabled",
|
||||
"type": "boolean",
|
||||
@@ -561,38 +692,77 @@
|
||||
"items": {
|
||||
"$id": "#/properties/volumes/items",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
|
||||
"type": "string",
|
||||
"title": "Name",
|
||||
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
|
||||
"default": "data"
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Volume",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
|
||||
"type": "string",
|
||||
"title": "Name",
|
||||
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
|
||||
"default": "data"
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The mount path inside the container",
|
||||
"default": "/data"
|
||||
},
|
||||
"size": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/size",
|
||||
"type": "string",
|
||||
"title": "Size",
|
||||
"description": "",
|
||||
"default": "10Gi"
|
||||
},
|
||||
"storageClass": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/storageClass",
|
||||
"type": "string",
|
||||
"title": "Storage Class",
|
||||
"description": "The slug indicating the disk type in your cloud provider. `standard` on Google Cloud, `default` on Azure; `do-block-storage` on Digital Ocean",
|
||||
"default": ""
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name", "path", "size"
|
||||
]
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The mount path inside the container",
|
||||
"default": "/data"
|
||||
},
|
||||
"size": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/size",
|
||||
"type": "string",
|
||||
"title": "Size",
|
||||
"description": "",
|
||||
"default": "10Gi"
|
||||
},
|
||||
"storageClass": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/storageClass",
|
||||
"type": "string",
|
||||
"title": "Storage Class",
|
||||
"description": "The slug indicating the disk type in your cloud provider. `standard` on Google Cloud, `default` on Azure; `do-block-storage` on Digital Ocean",
|
||||
"default": ""
|
||||
{
|
||||
"title": "Use existing volume claim",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
|
||||
"type": "string",
|
||||
"title": "Name",
|
||||
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
|
||||
"default": "data"
|
||||
},
|
||||
"existingClaim": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/existingClaim",
|
||||
"type": "string",
|
||||
"title": "Existing Claim",
|
||||
"description": "Use an existing PersistentVolumeClaim",
|
||||
"default": ""
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The mount path inside the container",
|
||||
"default": "/data"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name", "path", "existingClaim"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
@@ -40,16 +40,21 @@ probe:
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
|
||||
# Before you use a liveness probe: https://srcco.de/posts/kubernetes-liveness-probes-are-dangerous.html
|
||||
livenessProbe:
|
||||
enabled: false
|
||||
path: "/"
|
||||
settings:
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
|
||||
secretEnabled: false
|
||||
|
||||
shell: "/bin/sh"
|
||||
|
||||
debugSidecarEnabled: false
|
||||
debugSidecar:
|
||||
image: debian:stable-slim
|
||||
shell: "/bin/bash"
|
||||
command: "while true; do sleep 30; done;"
|
||||
|
||||
podDisruptionBudgetEnabled: true
|
||||
spreadAcrossNodes: false
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+402
-72
@@ -2,17 +2,89 @@ apiVersion: v1
|
||||
entries:
|
||||
cron-job:
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.135623609+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: ca99646f7696804dc4aaf66e05ce8d8876d13cbc8a3e8de231e0a04b85e82336
|
||||
created: "2022-01-19T08:09:03.643450597Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: a271e86592e89095de4f5130a7603785959f6352609868116b4501f0c7db2985
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.33.0.tgz
|
||||
version: 0.33.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.642788775Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 65730ad010bfaf7cc4771d1fc0d9f76dc952664f51e66f5e53011fa24467c81d
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.32.0.tgz
|
||||
version: 0.32.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.642073552Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: cc34a31277125ef6554ca86361bddf94d50c8f612770567afd89b7eebd1970ec
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.2.2.tgz
|
||||
version: 0.2.2
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.641287726Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: fed42cf26db57373f49a6931779813c193322ed98d6f57822176267c74f37c5c
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.2.1.tgz
|
||||
version: 0.2.1
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.633587973Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 1a7f50437f522d8941c59d8461668befb9142d53bc3f98aa682585af9dfb0f86
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.2.0.tgz
|
||||
version: 0.2.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.632926652Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 02a23d8b4177290a518ee5de6a5e1f557f7409f94b2e04f23fedea193464188f
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.1.2.tgz
|
||||
version: 0.1.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.135350915+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.63257414Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: afab9ba533a4686827b54b0dad64f5bbf76f7fbc075e35fb1034689db9ab9dda
|
||||
name: cron-job
|
||||
type: application
|
||||
@@ -20,8 +92,9 @@ entries:
|
||||
- https://chart.onechart.dev/cron-job-0.1.1.tgz
|
||||
version: 0.1.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.135018348+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.632239129Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 01f9fa40c1c4085d7688474ab00c9e9d21bd1d0793db6b75f2edda0e18456282
|
||||
name: cron-job
|
||||
type: application
|
||||
@@ -30,16 +103,16 @@ entries:
|
||||
version: 0.1.0
|
||||
namespaces:
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.136266841+02:00"
|
||||
created: "2022-01-19T08:09:03.644105918Z"
|
||||
description: Chart to create namespaces and their defaults
|
||||
digest: b23f0c98375246c074056fe54e79a0162a01c0a259e45f3380b1f2cff7ff8363
|
||||
digest: 5af0819305a59b0b6009531d4a667a7219462407680ef5c6c3083bf13ef558a6
|
||||
name: namespaces
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/namespaces-0.2.0.tgz
|
||||
version: 0.2.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.135899818+02:00"
|
||||
created: "2022-01-19T08:09:03.643686805Z"
|
||||
description: Chart to create namespaces and their defaults
|
||||
digest: 88b06d78a9d1bda6f2ee15b1fad7f25399ac25c2320fb9a8dfa1a4fd14afdf6e
|
||||
name: namespaces
|
||||
@@ -49,8 +122,239 @@ entries:
|
||||
version: 0.1.0
|
||||
onechart:
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.147074113+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.685926191Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: adc67be9607bb6c32a7e3e4c16098c6c2e7d4804935db061cc06df79c1af2a08
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.33.0.tgz
|
||||
version: 0.33.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.68498816Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: d2d691f32f0fb95e1ec16686084a7c0a0e71a4c8094124c7ce851dd5ff486059
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.32.0.tgz
|
||||
version: 0.32.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.683886524Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: b39a3dd9e29914d6b2c9b8b35055c07674e8ee22efbc1d3c5090f1f5f786dfe9
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.31.0.tgz
|
||||
version: 0.31.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.676261774Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: fa4bc2bd7ed52d9a4f51375cdab11521024004b9e6ff2f516d2b73479ce9a6cf
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.30.0.tgz
|
||||
version: 0.30.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.674106603Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 53645774e5e984048c37f7147754ecfbae5036aa45a830ca20358a5d075aefdf
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.29.0.tgz
|
||||
version: 0.29.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.673328277Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: fa2430009485291797a86eb73a729fcc3a673dff6ba0853ae4ccdf147ae60b7c
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.28.0.tgz
|
||||
version: 0.28.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.672531551Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: b5521c81ca4df3eef304ebe80180a39b4c913facea11488cbc333ee0a24a68ce
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.27.0.tgz
|
||||
version: 0.27.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.671787227Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 69d8a1abcf21235c9de681d5827fb5e8abbebf2ccec221f3a96aee2cfd31ed7d
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.27.0-rc3.tgz
|
||||
version: 0.27.0-rc3
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.671044102Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: a9d0b0a9c37debf5c996c20d54b31dad8322312e3e62dcf844ce45b251c0f031
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.27.0-rc2.tgz
|
||||
version: 0.27.0-rc2
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.670256576Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: b7a6167526d0a37b52cfa256a258ba65aa0c87846371dde04a254b3a252af0ad
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.27.0-rc1.tgz
|
||||
version: 0.27.0-rc1
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.669482551Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 3563a30dba0b6a9c7a1a3df358ca5c41e952882fd2f1bbe33c8103536870d651
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.26.0.tgz
|
||||
version: 0.26.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.668876931Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: efcbabde8193f1c3ecb34e4ede8f5efead1f77d8096180f4e8640ff94df07461
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.25.0.tgz
|
||||
version: 0.25.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.668323913Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 59f1389268efb3d970f84cae968e3ecbde57015df1201411f9f46becb4b09844
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.24.1.tgz
|
||||
version: 0.24.1
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.667740994Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 74b6fdf49a9fa5327fc0639f1d97f0cf553f89030c01379f3c91a5adb6f8a0f1
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.24.0.tgz
|
||||
version: 0.24.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.666823364Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: f8e444c2d5c5a4e73b76a971effda5246d3200427be45c2fb546bc990f197ecc
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.23.0.tgz
|
||||
version: 0.23.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.66608374Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: dfad2865c3eb54f0366300ef63b8ba1863ca69aa27e5ca5d3512c0d799d004d3
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.22.0.tgz
|
||||
version: 0.22.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.664409885Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 1b837cdefcb7025c40bffdd620a0f116df5ccb9023ac6a8c538bd8e77b3eb80a
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.21.0.tgz
|
||||
version: 0.21.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.663827666Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: a4f5741b46b89cd4328fbd96f96d85d53bae64b526730de5097ec33639c9c54f
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.20.0.tgz
|
||||
version: 0.20.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.662984038Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 59dd16db4f8519d3922da349aabcc2daec8385fc8a98d0f3163a84b98cc12f61
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.19.0.tgz
|
||||
version: 0.19.0
|
||||
- apiVersion: v2
|
||||
created: "2022-01-19T08:09:03.662420919Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 74c4c6a448e66929dfcafc5a641b5bdbaa8af6832c6065b02ce756dfeb3fc438
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -58,8 +362,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.18.0.tgz
|
||||
version: 0.18.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.146573953+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.661763798Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: e1ba0bb54c3a3e13b661bb608839c7013d12e24d0437581ebfdbf5ce4a283d4d
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -67,8 +372,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.17.0.tgz
|
||||
version: 0.17.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.145978425+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.653278219Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 596350a4977b305e4d5aae16dd8dcca62a17ea5cec9f444aacd82a12d6b3dcfe
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -76,8 +382,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.16.0.tgz
|
||||
version: 0.16.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.145350592+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.652703Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: d1a5a9e9bff274f32f6849bc58b201c7886240b94dd6b70b5cf3411d9ad03393
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -85,8 +392,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.15.3.tgz
|
||||
version: 0.15.3
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.144733971+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.652109181Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 626410479f67bbbfa7e7fc94f6dfd8aae50a2bdf9fc72ec395c835dacbd5dbe7
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -94,8 +402,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.15.2.tgz
|
||||
version: 0.15.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.144146593+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.651506761Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: e6d237aff4abedee6deb5ba57e8183c7598b255d40afdd04c03f73014f706aa3
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -103,8 +412,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.15.1.tgz
|
||||
version: 0.15.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.143531105+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.650953543Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: d45fc4cc214bc94e4c2c10d6432562d7e65ee5e55226f677aafdfe101d7f6e7f
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -112,8 +422,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.15.0.tgz
|
||||
version: 0.15.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.142882262+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.650359424Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 7e61a72a3400e09c44539094558a2084621239015132d20551c4593be3b5bede
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -121,8 +432,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.14.0.tgz
|
||||
version: 0.14.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.142304267+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.649765004Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 743a9b552233770713f0c22edbe8cf4f55c890a59106e1f33055c1cb31be5a27
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -130,8 +442,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.13.2.tgz
|
||||
version: 0.13.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.141736896+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.648952377Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 02bf9537e13cea0da9dc3bfbcdd45d51576354cb18b7c1c7cec76f829e20105f
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -139,8 +452,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.13.1.tgz
|
||||
version: 0.13.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.141147797+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.648302356Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 5183ed825c4f255ca5a4f0ffeb8c92bbad3c43b42fc1b798f1f1fc6de2a30bef
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -148,8 +462,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.13.0.tgz
|
||||
version: 0.13.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.14039429+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.647343225Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: e131a502d12a6b074453f1da8d0d1ca7145e80a025f31252b24cc3d62375a4c1
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -157,8 +472,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.12.2.tgz
|
||||
version: 0.12.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.139434402+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.646838508Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 8e1a25d18a546c4ec5e970991301a08e38495a964a8f6e0a2ee97f92c41c9691
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -166,8 +482,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.12.1.tgz
|
||||
version: 0.12.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.138885016+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.646310991Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: f38a6f2fbf5c847b00a9140ecd004e0bf667d859aa83d8dac4a2d0eecd1a361f
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -175,8 +492,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.12.0.tgz
|
||||
version: 0.12.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.138328795+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.645821375Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 75c16f84b5e99aad5aa7203f5c1ce2a9589d85b89afec4e161a2e0344a522c17
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -184,8 +502,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.11.0.tgz
|
||||
version: 0.11.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.137791641+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.64538506Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 40f1166e858d35cb237debd1390187884641b0e8c29a80aaa195b66b0ee73516
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -193,8 +512,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.10.0.tgz
|
||||
version: 0.10.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.153556969+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.68987482Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: cb42b08b463b401f6718bba7c171ee55c173021c5101ea1b3068ef3899a6e164
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -202,8 +522,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.9.0.tgz
|
||||
version: 0.9.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.153088143+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.689418005Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: ce046d209a9e8fa07766712492cc896451473fafca129dbc9c675107d0e39c52
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -211,8 +532,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.8.2.tgz
|
||||
version: 0.8.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.15266273+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.689017692Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 422d7e6ea1bed530d4cd5e23417b229772a6fe2e835828ca282a3e6c9b646b2b
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -220,8 +542,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.8.1.tgz
|
||||
version: 0.8.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.152246839+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.688627779Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 8001bd02fc90ad66da7941c136ee8d0e665ea90b6e1ac27d82b048f2b12b3964
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -229,8 +552,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.8.0.tgz
|
||||
version: 0.8.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.151792397+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.688224766Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: d1454b430eb7131d0d450f7c0a8a6698278893c61e03d48649a8112dfcf42b72
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -238,8 +562,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.7.1.tgz
|
||||
version: 0.7.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.151364196+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.687858454Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 4bf90835f287917671ec40b5b395da9332cf18e70f248d250f8d5a72360dcb4e
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -247,8 +572,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.7.0.tgz
|
||||
version: 0.7.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.150904482+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.687489942Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 0cade489fc74a040f5e7f71d01c6fa00d3f68b4752a4d8234ccf2c1504b4c0a1
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -256,8 +582,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.6.1.tgz
|
||||
version: 0.6.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.150480273+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.687167631Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: d607820a7e104eaaa88c153c1f2f7f409ef4c612ad747caeb3a671cf3fce03d4
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -265,8 +592,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.6.0.tgz
|
||||
version: 0.6.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.150026286+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.68683102Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: ddf7cf87402095d62855898744b805115fdf86c4b295e0a4def0c50408fd9138
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -274,8 +602,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.5.1.tgz
|
||||
version: 0.5.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.149359976+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.686542511Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: adf3c2cf3a27e58ec75620599e0e1c2031a7410a061a590317beeff6d8a9ad69
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -283,8 +612,9 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.5.0.tgz
|
||||
version: 0.5.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.148710367+02:00"
|
||||
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
created: "2022-01-19T08:09:03.686228601Z"
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 8dab33263c4e632aeb4656c666871440b589497b70e76a1d6c3a5e3db1a30bba
|
||||
name: onechart
|
||||
type: application
|
||||
@@ -292,7 +622,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.4.0.tgz
|
||||
version: 0.4.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.148354748+02:00"
|
||||
created: "2022-01-19T08:09:03.674895729Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: fbaf6139e0ef8ad9a87cc1e41a97c7d25fdcf7ea17fa6364952f1a851a87480a
|
||||
name: onechart
|
||||
@@ -301,7 +631,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.3.2.tgz
|
||||
version: 0.3.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.148026466+02:00"
|
||||
created: "2022-01-19T08:09:03.67464342Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: bd6f5b1865ab9b05fc6925c163ab8045235bd2723dba31f09d5083d24322d1f8
|
||||
name: onechart
|
||||
@@ -310,7 +640,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.3.1.tgz
|
||||
version: 0.3.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.147701247+02:00"
|
||||
created: "2022-01-19T08:09:03.674354611Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: c79cef21eceab948144a289298cdf1e20e77a0782a883d7d65f9e709ccbbc271
|
||||
name: onechart
|
||||
@@ -319,7 +649,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.3.0.tgz
|
||||
version: 0.3.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.147391847+02:00"
|
||||
created: "2022-01-19T08:09:03.663257547Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: dd814ac5d08d5e6163a1b769df6803f5cb0f09d906045086dfcc5be522bb1ec3
|
||||
name: onechart
|
||||
@@ -328,7 +658,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.2.0.tgz
|
||||
version: 0.2.0
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.137265818+02:00"
|
||||
created: "2022-01-19T08:09:03.644965047Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: e46062df8053840cbfbba26c0a66a843a79f15a0b43a145ed019327513bd5098
|
||||
name: onechart
|
||||
@@ -337,7 +667,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.1.2.tgz
|
||||
version: 0.1.2
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.136924984+02:00"
|
||||
created: "2022-01-19T08:09:03.644705538Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: a7bbc8b7dcc008e89156cd1830282b7d39c0592e82ccdcefb77a25a42eca2a3d
|
||||
name: onechart
|
||||
@@ -346,7 +676,7 @@ entries:
|
||||
- https://chart.onechart.dev/onechart-0.1.1.tgz
|
||||
version: 0.1.1
|
||||
- apiVersion: v2
|
||||
created: "2021-04-07T14:27:01.136592761+02:00"
|
||||
created: "2022-01-19T08:09:03.644396728Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: 1ed8c0645abdae6c950526e9c5410dc056847a11700dc7def5f1c55eb7de0cd4
|
||||
name: onechart
|
||||
@@ -354,4 +684,4 @@ entries:
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.1.0.tgz
|
||||
version: 0.1.0
|
||||
generated: "2021-04-07T14:27:01.134563333+02:00"
|
||||
generated: "2022-01-19T08:09:03.631717712Z"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
image:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
|
||||
schedule: "*/1 * * * *"
|
||||
command: |
|
||||
echo "I'm alive"
|
||||
shell: "/bin/sh"
|
||||
|
||||
vars:
|
||||
MY_VAR: "value"
|
||||
|
||||
volumes:
|
||||
- name: data
|
||||
path: /data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
+9
-11
@@ -1,11 +1,9 @@
|
||||
fileSecrets:
|
||||
- name: google-account-key
|
||||
path: /google-account-key
|
||||
secrets:
|
||||
key.json: supersecret
|
||||
another.json: |
|
||||
this
|
||||
is
|
||||
a
|
||||
multiline
|
||||
secret
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
ingressClassName: nginx
|
||||
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
|
||||
vars:
|
||||
MY_VAR: "value"
|
||||
|
||||
Reference in New Issue
Block a user