Compare commits

...

66 Commits

Author SHA1 Message Date
Github Actions 1ba0e4df60 Support for arbitrary yaml pieces 2022-04-25 08:43:38 +02:00
Github Action b761286e38 The next release version will be 0.36.0 2022-03-21 13:36:33 +00:00
Github Action 1400b4a58d Publishing 0.35.0 to the Helm repository 2022-03-21 13:36:32 +00:00
Github Actions e2f8f0042a Should really default to the default storageclass, not to local-path provisioner 2022-03-21 14:35:26 +01:00
Github Action 059523dbf2 The next release version will be 0.35.0 2022-02-11 12:09:51 +00:00
Github Action b9392c085c Publishing 0.34.0 to the Helm repository 2022-02-11 12:09:50 +00:00
szabogabor91 c3e2280489 Add all features to values schema (#39)
Co-authored-by: Laszlo Fogas <laszlo@laszlo.cloud>
2022-02-11 13:08:07 +01:00
Github Action 1722e9bcf1 The next release version will be 0.34.0 2022-01-19 08:09:04 +00:00
Github Action ef6738e62e Publishing 0.33.0 to the Helm repository 2022-01-19 08:09:03 +00:00
Laszlo Fogas ee9e8e95c2 Merge pull request #37 from gimlet-io/path
Making ingress path configurable
2022-01-19 09:05:46 +01:00
Laszlo Fogas df1042fb5a Making ingress path configurable 2022-01-19 09:03:10 +01:00
Laszlo Fogas a2b0e07505 Merge pull request #34 from gimlet-io/laszlocph/increase-readiness-probe-33
Accomodating older services
2021-12-13 15:02:00 +01:00
Laszlo Fogas 7a49d313a5 Accomodating older services 2021-12-13 13:59:49 +00:00
Laszlo Fogas 254d38f05f Broken link 2021-11-16 09:35:21 +01:00
Github Action 7f4f1674b8 The next release version will be 0.33.0 2021-10-21 08:37:41 +00:00
Github Action 569ebb06f1 Publishing 0.32.0 to the Helm repository 2021-10-21 08:37:40 +00:00
Laszlo Fogas a5512f8f8a Same version scheme for cron-job and onechart 2021-10-21 10:36:24 +02:00
Laszlo Fogas 530070b05c Same version scheme for cron-job and onechart 2021-10-21 10:35:14 +02:00
Laszlo Fogas ad2ea458c4 Same version scheme for cron-job and onechart 2021-10-21 10:29:40 +02:00
Laszlo Fogas 6783eb019d Fixing identation for cronjob fields 2021-10-21 10:20:36 +02:00
Github Action 6f1753c46d The next release version will be 0.32.0 2021-09-29 12:19:16 +00:00
Github Action e943d982ef Publishing 0.31.0 to the Helm repository 2021-09-29 12:19:15 +00:00
Laszlo Fogas 213303b10e Merge pull request #32 from gimlet-io/v1-ingress-support
Using networking.k8s.io/v1 Ingress; requires cluster versions >= 1.19
2021-09-29 14:15:50 +02:00
Laszlo Fogas 13d860f7f4 Using networking.k8s.io/v1 Ingress; requires cluster versions >= 1.19 2021-09-29 10:59:17 +02:00
Github Action 47ae89c7e6 The next release version will be 0.31.0 2021-09-18 13:26:59 +00:00
Github Action 7bb30fccab Publishing 0.30.0 to the Helm repository 2021-09-18 13:26:58 +00:00
Laszlo Fogas f38708f864 LivenessProbe support - you can use it, doesn't mean you should 2021-09-18 15:25:37 +02:00
Github Action d9fa868eaa The next release version will be 0.30.0 2021-09-15 06:51:03 +00:00
Github Action 24c8634b09 Publishing 0.29.0 to the Helm repository 2021-09-15 06:51:01 +00:00
Laszlo Fogas 937cb67c30 Support for existingClaim 2021-09-15 08:48:38 +02:00
Laszlo Fogas 07afdb14c1 Fixing cron-job tests 2021-09-08 11:41:10 +02:00
Laszlo Fogas 8c82240186 Making label names robust 2021-09-08 11:31:45 +02:00
Github Action 4e44c8104c The next release version will be 0.29.0 2021-08-27 07:09:19 +00:00
Github Action 2e97926d70 Publishing 0.28.0 to the Helm repository 2021-08-27 07:09:18 +00:00
Laszlo Fogas d6c34a8349 Merge pull request #29 from gimlet-io/fix-robustname
Fixing #28: ingress host names and resource names have different sani…
2021-08-27 09:06:37 +02:00
Laszlo Fogas e85c443284 Fixing #28: ingress host names and resource names have different sanitization needs 2021-08-27 09:03:45 +02:00
Github Action 58292c747e The next release version will be 0.28.0 2021-08-13 07:23:26 +00:00
Github Action 607d4301bf Publishing 0.27.0 to the Helm repository 2021-08-13 07:23:25 +00:00
Laszlo Fogas 269ab7e376 Using unique names for TLS secrets 2021-08-13 09:10:47 +02:00
Laszlo Fogas 324617b0de 0.27.0 coming after RCs 2021-08-13 08:46:49 +02:00
Github Action 6a897ff5a3 The next release version will be 0.28.0 2021-08-05 11:27:26 +00:00
Github Action 10205747f2 Publishing 0.27.0-rc3 to the Helm repository 2021-08-05 11:27:25 +00:00
Laszlo Fogas c56e2aa5b4 Fixing robustName helper 2021-08-05 13:26:49 +02:00
Github Action 167ce8cff5 The next release version will be 0.28.0 2021-08-05 10:26:05 +00:00
Github Action 539caf68a0 Publishing 0.27.0-rc2 to the Helm repository 2021-08-05 10:26:04 +00:00
Laszlo Fogas eec4f30c67 Added json schema and ui meta data to cronjob 2021-08-05 12:25:23 +02:00
Github Action 9609cc2c3a The next release version will be 0.28.0 2021-08-05 10:07:25 +00:00
Github Action 59a5bfde2f Publishing 0.27.0-rc1 to the Helm repository 2021-08-05 10:07:25 +00:00
Laszlo Fogas 98390f73c8 Merge pull request #27 from gimlet-io/schedule-support
Using common chart
2021-08-05 12:05:59 +02:00
Github Action 8417a0363d Publishing 0.27.0-rc1 to the Helm repository 2021-08-05 09:58:13 +00:00
Laszlo Fogas 5910080e17 Fixing release script to not fail on dependency charts 2021-08-05 11:57:18 +02:00
Laszlo Fogas 922111d2de Preparing for rc release 2021-08-05 11:52:28 +02:00
Laszlo Fogas 4352af0abc Moved var and secret support to common 2021-08-05 11:50:18 +02:00
Laszlo Fogas 164bfec8b3 Moved volume support to common 2021-08-05 11:50:18 +02:00
Laszlo Fogas d91040c0a0 Job constraints configurable 2021-08-05 11:50:18 +02:00
Laszlo Fogas 4942164b9a Testing of common chart 2021-08-05 11:50:17 +02:00
Github Action 1082767c59 The next release version will be 0.27.0 2021-08-02 06:50:06 +00:00
Github Action 74c16555dd Publishing 0.26.0 to the Helm repository 2021-08-02 06:50:02 +00:00
Laszlo Fogas ae6c219132 Supporting secretName without secretEnabled 2021-08-02 08:46:29 +02:00
Laszlo Fogas ade37a82c7 Merge pull request #25 from msbsh/fix/ingress-svc-port
fix: Makes use of svcPort within ingress, when defined;
2021-07-29 15:24:31 +02:00
Martin James b249805bf3 fix: Makes use of svcPort within ingress, when defined; 2021-07-27 18:22:05 +02:00
Github Action efd5d819f3 The next release version will be 0.26.0 2021-07-27 08:10:15 +00:00
Github Action b2700d990d Publishing 0.25.0 to the Helm repository 2021-07-27 08:10:13 +00:00
Laszlo Fogas d0d0b28c9a Deployment strategy is configurable; still having the single replica volume rule 2021-07-27 10:02:54 +02:00
Github Action 0a162de948 The next release version will be 0.25.0 2021-07-26 09:34:33 +00:00
Github Action 442c98f5d1 Publishing 0.24.1 to the Helm repository 2021-07-26 09:34:30 +00:00
83 changed files with 1582 additions and 286 deletions
+14 -3
View File
@@ -26,25 +26,35 @@ jobs:
- name: Extract chart version
id: chart_version
run: |
CHART_VERSION=$(cat charts/onechart/Chart.yaml | grep version:)
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 "Run ${{ steps.versioning.outputs.VERSION }}"
echo "${{ steps.chart_version.outputs.CHART_VERSION }}"
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
@@ -85,6 +95,7 @@ jobs:
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 .
+9
View File
@@ -28,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:
@@ -45,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
+1 -1
View File
@@ -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
+23
View File
@@ -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/
+18
View File
@@ -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
+15
View File
@@ -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 -}}
+21
View File
@@ -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 -}}
+10
View File
@@ -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 }}
+22
View File
@@ -0,0 +1,22 @@
{{- 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" }}
{{- if .storageClass }}
storageClassName: {{ .storageClass }}
{{- end }}
resources:
requests:
storage: {{ .size | default "1Gi" }}
{{- end }}
{{- end }}
{{- end -}}
@@ -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 -}}
@@ -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 }}
+24
View File
@@ -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 -}}
+6
View File
@@ -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"
+6 -1
View File
@@ -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.36.0
dependencies:
- name: common
version: 0.1.0
repository: file://../common
Binary file not shown.
+71
View File
@@ -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"
}
}
]
+10 -1
View File
@@ -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
View File
@@ -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" . -}}
+12 -30
View File
@@ -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
View File
@@ -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
+316
View File
@@ -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
}
+6
View File
@@ -27,3 +27,9 @@ affinity: {}
secret:
enabled: false
constraints:
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
startingDeadlineSeconds: 120
+6
View File
@@ -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"
+6 -1
View File
@@ -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.24.1
version: 0.36.0
dependencies:
- name: common
version: 0.1.0
repository: file://../common
Binary file not shown.
+38 -6
View File
@@ -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"
}
}
]
]
+2 -2
View File
@@ -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
View File
@@ -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" . -}}
+17 -49
View File
@@ -15,10 +15,15 @@ spec:
matchLabels:
{{- include "helm-chart.selectorLabels" . | nindent 6 }}
{{- $singleReplica := eq (.Values.replicas | int64) 1 }}
{{- if and .Values.volumes $singleReplica }}
{{- $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:
@@ -56,21 +61,7 @@ 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.ports }}
- name: http
@@ -93,23 +84,17 @@ 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.sidecar }}
@@ -129,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,3 @@
{{- if .Values.extraDeploy }}
{{ .Values.extraDeploy }}
{{- end }}
@@ -0,0 +1 @@
{{- include "common.fileSecret.tpl" . -}}
+19 -12
View File
@@ -1,15 +1,15 @@
{{/* 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/v1beta1
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
{{- if .longName }}
name: {{ $robustName }}-{{ template "robustName" .ingress.host }}
{{- else }}
name: {{ $robustName }}
{{- end }}
name: {{ $resourceName }}
namespace: {{ .root.Release.Namespace }}
labels:
{{- include "helm-chart.labels" .root | nindent 4 }}
@@ -26,19 +26,26 @@ metadata:
{{- end }}
{{- end }}
spec:
{{- if .ingress.ingressClassName }}
ingressClassName: {{ .ingress.ingressClassName }}
{{- end }}
{{- if default false .ingress.tlsEnabled }}
tls:
- hosts:
- {{ template "robustName" .ingress.host | quote }}
secretName: {{ printf "tls-%s" $robustName }}
- {{ .ingress.host | quote }}
secretName: {{ printf "tls-%s" $resourceName }}
{{- end }}
rules:
- host: {{ template "robustName" .ingress.host | quote }}
- host: {{ .ingress.host | quote }}
http:
paths:
- backend:
serviceName: {{ $robustName }}
servicePort: {{ .root.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 }}
+1 -16
View File
@@ -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" . -}}
@@ -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
@@ -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
@@ -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:
@@ -42,3 +42,35 @@ tests:
- 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
@@ -0,0 +1,57 @@
suite: test service
templates:
- extraDeploy.yaml
tests:
- it: Should include additional yaml pieces
set:
extraDeploy: |
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
asserts:
- equal:
path: kind
value: NetworkPolicy
- it: Should include multiple yaml pieces
set:
extraDeploy: |
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
asserts:
- hasDocuments:
count: 2
+46 -11
View File
@@ -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,28 +37,41 @@ 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:
kubernetes.io/ingress.class: nginx
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:
@@ -83,3 +100,21 @@ tests:
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
+9
View File
@@ -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:
+206 -36
View File
@@ -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
}
}
+11
View File
@@ -40,6 +40,17 @@ 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"
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.
+344 -48
View File
@@ -2,17 +2,115 @@ apiVersion: v1
entries:
cron-job:
- apiVersion: v2
created: "2021-07-19T14:27:42.542183917Z"
created: "2022-03-21T13:36:32.628080043Z"
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: 274b9509131f4431dad8a98273b44c8d32de1888c7c419560c1ec116a288836f
digest: 9e864df616e71481dadadc9e39c08ae8d5dcc47ebc3e77158a81044dc4027d6c
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.35.0.tgz
version: 0.35.0
- apiVersion: v2
created: "2022-03-21T13:36:32.627246738Z"
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: 39e0d49e0e53c56911c4122541a454e1d87df444c80e9580c31330a4d0ea0299
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.34.0.tgz
version: 0.34.0
- apiVersion: v2
created: "2022-03-21T13:36:32.62601803Z"
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-03-21T13:36:32.623762116Z"
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-03-21T13:36:32.588768801Z"
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-03-21T13:36:32.587325292Z"
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-03-21T13:36:32.585943783Z"
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-03-21T13:36:32.585244479Z"
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-07-19T14:27:42.541795517Z"
created: "2022-03-21T13:36:32.584877877Z"
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
@@ -22,7 +120,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2021-07-19T14:27:42.541410916Z"
created: "2022-03-21T13:36:32.584513374Z"
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
@@ -33,16 +131,16 @@ entries:
version: 0.1.0
namespaces:
- apiVersion: v2
created: "2021-07-19T14:27:42.542990519Z"
created: "2022-03-21T13:36:32.628994849Z"
description: Chart to create namespaces and their defaults
digest: e211e1adbc5ac78d971565e698818395ea7ccd132d537f8b255cdd291d4e51bb
digest: 3f0101b394693e21fa3e975cbb4afb85e623a5956295c390bcbb2e45d448ec80
name: namespaces
type: application
urls:
- https://chart.onechart.dev/namespaces-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2021-07-19T14:27:42.542494918Z"
created: "2022-03-21T13:36:32.628400545Z"
description: Chart to create namespaces and their defaults
digest: 88b06d78a9d1bda6f2ee15b1fad7f25399ac25c2320fb9a8dfa1a4fd14afdf6e
name: namespaces
@@ -52,7 +150,205 @@ entries:
version: 0.1.0
onechart:
- apiVersion: v2
created: "2021-07-19T14:27:42.561810552Z"
created: "2022-03-21T13:36:32.670299204Z"
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: 7392bba3467e4c28ffa4c868c7580852dd35dc7e0ff4956a2546adc06c7a29a7
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.35.0.tgz
version: 0.35.0
- apiVersion: v2
created: "2022-03-21T13:36:32.669304797Z"
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: 4eb83c83a38c56eb7883949186dc4e91c86da9dc51d6c1ffb962996004ddcd19
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.34.0.tgz
version: 0.34.0
- apiVersion: v2
created: "2022-03-21T13:36:32.668298391Z"
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-03-21T13:36:32.667025383Z"
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-03-21T13:36:32.665919676Z"
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-03-21T13:36:32.664672169Z"
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-03-21T13:36:32.661451449Z"
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-03-21T13:36:32.660119341Z"
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-03-21T13:36:32.659184735Z"
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-03-21T13:36:32.658201529Z"
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-03-21T13:36:32.657205323Z"
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-03-21T13:36:32.656181016Z"
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-03-21T13:36:32.65521671Z"
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-03-21T13:36:32.654491706Z"
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-03-21T13:36:32.653781402Z"
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-03-21T13:36:32.653043197Z"
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
@@ -62,7 +358,7 @@ entries:
- https://chart.onechart.dev/onechart-0.24.0.tgz
version: 0.24.0
- apiVersion: v2
created: "2021-07-19T14:27:42.561118451Z"
created: "2022-03-21T13:36:32.651587588Z"
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
@@ -72,7 +368,7 @@ entries:
- https://chart.onechart.dev/onechart-0.23.0.tgz
version: 0.23.0
- apiVersion: v2
created: "2021-07-19T14:27:42.559859249Z"
created: "2022-03-21T13:36:32.649538575Z"
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
@@ -82,7 +378,7 @@ entries:
- https://chart.onechart.dev/onechart-0.22.0.tgz
version: 0.22.0
- apiVersion: v2
created: "2021-07-19T14:27:42.559107847Z"
created: "2022-03-21T13:36:32.64869497Z"
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
@@ -92,7 +388,7 @@ entries:
- https://chart.onechart.dev/onechart-0.21.0.tgz
version: 0.21.0
- apiVersion: v2
created: "2021-07-19T14:27:42.558421846Z"
created: "2022-03-21T13:36:32.647754564Z"
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
@@ -102,7 +398,7 @@ entries:
- https://chart.onechart.dev/onechart-0.20.0.tgz
version: 0.20.0
- apiVersion: v2
created: "2021-07-19T14:27:42.557404944Z"
created: "2022-03-21T13:36:32.645719952Z"
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
@@ -112,7 +408,7 @@ entries:
- https://chart.onechart.dev/onechart-0.19.0.tgz
version: 0.19.0
- apiVersion: v2
created: "2021-07-19T14:27:42.556581743Z"
created: "2022-03-21T13:36:32.644988847Z"
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
@@ -122,7 +418,7 @@ entries:
- https://chart.onechart.dev/onechart-0.18.0.tgz
version: 0.18.0
- apiVersion: v2
created: "2021-07-19T14:27:42.555853642Z"
created: "2022-03-21T13:36:32.644273143Z"
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
@@ -132,7 +428,7 @@ entries:
- https://chart.onechart.dev/onechart-0.17.0.tgz
version: 0.17.0
- apiVersion: v2
created: "2021-07-19T14:27:42.55511184Z"
created: "2022-03-21T13:36:32.643572839Z"
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
@@ -142,7 +438,7 @@ entries:
- https://chart.onechart.dev/onechart-0.16.0.tgz
version: 0.16.0
- apiVersion: v2
created: "2021-07-19T14:27:42.554387239Z"
created: "2022-03-21T13:36:32.642824734Z"
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
@@ -152,7 +448,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.3.tgz
version: 0.15.3
- apiVersion: v2
created: "2021-07-19T14:27:42.553625538Z"
created: "2022-03-21T13:36:32.642083729Z"
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
@@ -162,7 +458,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.2.tgz
version: 0.15.2
- apiVersion: v2
created: "2021-07-19T14:27:42.552900436Z"
created: "2022-03-21T13:36:32.641343025Z"
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
@@ -172,7 +468,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.1.tgz
version: 0.15.1
- apiVersion: v2
created: "2021-07-19T14:27:42.552159835Z"
created: "2022-03-21T13:36:32.64047982Z"
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
@@ -182,7 +478,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.0.tgz
version: 0.15.0
- apiVersion: v2
created: "2021-07-19T14:27:42.551430134Z"
created: "2022-03-21T13:36:32.639527314Z"
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
@@ -192,7 +488,7 @@ entries:
- https://chart.onechart.dev/onechart-0.14.0.tgz
version: 0.14.0
- apiVersion: v2
created: "2021-07-19T14:27:42.550703732Z"
created: "2022-03-21T13:36:32.638321206Z"
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
@@ -202,7 +498,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.2.tgz
version: 0.13.2
- apiVersion: v2
created: "2021-07-19T14:27:42.549692831Z"
created: "2022-03-21T13:36:32.637455201Z"
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
@@ -212,7 +508,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.1.tgz
version: 0.13.1
- apiVersion: v2
created: "2021-07-19T14:27:42.548860929Z"
created: "2022-03-21T13:36:32.636154093Z"
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
@@ -222,7 +518,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.0.tgz
version: 0.13.0
- apiVersion: v2
created: "2021-07-19T14:27:42.547956527Z"
created: "2022-03-21T13:36:32.633824579Z"
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
@@ -232,7 +528,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.2.tgz
version: 0.12.2
- apiVersion: v2
created: "2021-07-19T14:27:42.546899226Z"
created: "2022-03-21T13:36:32.633205275Z"
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
@@ -242,7 +538,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.1.tgz
version: 0.12.1
- apiVersion: v2
created: "2021-07-19T14:27:42.546316225Z"
created: "2022-03-21T13:36:32.632596071Z"
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
@@ -252,7 +548,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.0.tgz
version: 0.12.0
- apiVersion: v2
created: "2021-07-19T14:27:42.545728224Z"
created: "2022-03-21T13:36:32.631301963Z"
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
@@ -262,7 +558,7 @@ entries:
- https://chart.onechart.dev/onechart-0.11.0.tgz
version: 0.11.0
- apiVersion: v2
created: "2021-07-19T14:27:42.545168223Z"
created: "2022-03-21T13:36:32.630696759Z"
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
@@ -272,7 +568,7 @@ entries:
- https://chart.onechart.dev/onechart-0.10.0.tgz
version: 0.10.0
- apiVersion: v2
created: "2021-07-19T14:27:42.569304465Z"
created: "2022-03-21T13:36:32.679826462Z"
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
@@ -282,7 +578,7 @@ entries:
- https://chart.onechart.dev/onechart-0.9.0.tgz
version: 0.9.0
- apiVersion: v2
created: "2021-07-19T14:27:42.568768764Z"
created: "2022-03-21T13:36:32.674988732Z"
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
@@ -292,7 +588,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.2.tgz
version: 0.8.2
- apiVersion: v2
created: "2021-07-19T14:27:42.568240864Z"
created: "2022-03-21T13:36:32.674463729Z"
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
@@ -302,7 +598,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.1.tgz
version: 0.8.1
- apiVersion: v2
created: "2021-07-19T14:27:42.567625462Z"
created: "2022-03-21T13:36:32.673981426Z"
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
@@ -312,7 +608,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.0.tgz
version: 0.8.0
- apiVersion: v2
created: "2021-07-19T14:27:42.567139862Z"
created: "2022-03-21T13:36:32.673442623Z"
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
@@ -322,7 +618,7 @@ entries:
- https://chart.onechart.dev/onechart-0.7.1.tgz
version: 0.7.1
- apiVersion: v2
created: "2021-07-19T14:27:42.566691461Z"
created: "2022-03-21T13:36:32.67297662Z"
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
@@ -332,7 +628,7 @@ entries:
- https://chart.onechart.dev/onechart-0.7.0.tgz
version: 0.7.0
- apiVersion: v2
created: "2021-07-19T14:27:42.56624326Z"
created: "2022-03-21T13:36:32.672421517Z"
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
@@ -342,7 +638,7 @@ entries:
- https://chart.onechart.dev/onechart-0.6.1.tgz
version: 0.6.1
- apiVersion: v2
created: "2021-07-19T14:27:42.565849459Z"
created: "2022-03-21T13:36:32.671914913Z"
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
@@ -352,7 +648,7 @@ entries:
- https://chart.onechart.dev/onechart-0.6.0.tgz
version: 0.6.0
- apiVersion: v2
created: "2021-07-19T14:27:42.565457359Z"
created: "2022-03-21T13:36:32.671465311Z"
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
@@ -362,7 +658,7 @@ entries:
- https://chart.onechart.dev/onechart-0.5.1.tgz
version: 0.5.1
- apiVersion: v2
created: "2021-07-19T14:27:42.565078358Z"
created: "2022-03-21T13:36:32.671091408Z"
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
@@ -372,7 +668,7 @@ entries:
- https://chart.onechart.dev/onechart-0.5.0.tgz
version: 0.5.0
- apiVersion: v2
created: "2021-07-19T14:27:42.564614657Z"
created: "2022-03-21T13:36:32.670713806Z"
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
@@ -382,7 +678,7 @@ entries:
- https://chart.onechart.dev/onechart-0.4.0.tgz
version: 0.4.0
- apiVersion: v2
created: "2021-07-19T14:27:42.563326255Z"
created: "2022-03-21T13:36:32.663374761Z"
description: A generic Helm chart for your application deployments
digest: fbaf6139e0ef8ad9a87cc1e41a97c7d25fdcf7ea17fa6364952f1a851a87480a
name: onechart
@@ -391,7 +687,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.2.tgz
version: 0.3.2
- apiVersion: v2
created: "2021-07-19T14:27:42.562892654Z"
created: "2022-03-21T13:36:32.662609056Z"
description: A generic Helm chart for your application deployments
digest: bd6f5b1865ab9b05fc6925c163ab8045235bd2723dba31f09d5083d24322d1f8
name: onechart
@@ -400,7 +696,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.1.tgz
version: 0.3.1
- apiVersion: v2
created: "2021-07-19T14:27:42.562441953Z"
created: "2022-03-21T13:36:32.662222454Z"
description: A generic Helm chart for your application deployments
digest: c79cef21eceab948144a289298cdf1e20e77a0782a883d7d65f9e709ccbbc271
name: onechart
@@ -409,7 +705,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.0.tgz
version: 0.3.0
- apiVersion: v2
created: "2021-07-19T14:27:42.557740545Z"
created: "2022-03-21T13:36:32.646085654Z"
description: A generic Helm chart for your application deployments
digest: dd814ac5d08d5e6163a1b769df6803f5cb0f09d906045086dfcc5be522bb1ec3
name: onechart
@@ -418,7 +714,7 @@ entries:
- https://chart.onechart.dev/onechart-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2021-07-19T14:27:42.54401462Z"
created: "2022-03-21T13:36:32.630089955Z"
description: A generic Helm chart for your application deployments
digest: e46062df8053840cbfbba26c0a66a843a79f15a0b43a145ed019327513bd5098
name: onechart
@@ -427,7 +723,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.2.tgz
version: 0.1.2
- apiVersion: v2
created: "2021-07-19T14:27:42.54367892Z"
created: "2022-03-21T13:36:32.629745853Z"
description: A generic Helm chart for your application deployments
digest: a7bbc8b7dcc008e89156cd1830282b7d39c0592e82ccdcefb77a25a42eca2a3d
name: onechart
@@ -436,7 +732,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2021-07-19T14:27:42.543340119Z"
created: "2022-03-21T13:36:32.629365151Z"
description: A generic Helm chart for your application deployments
digest: 1ed8c0645abdae6c950526e9c5410dc056847a11700dc7def5f1c55eb7de0cd4
name: onechart
@@ -444,4 +740,4 @@ entries:
urls:
- https://chart.onechart.dev/onechart-0.1.0.tgz
version: 0.1.0
generated: "2021-07-19T14:27:42.540831515Z"
generated: "2022-03-21T13:36:32.583977771Z"
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.
+17
View File
@@ -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
+4 -9
View File
@@ -1,14 +1,9 @@
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
ingressClassName: nginx
gitRepository: github.com/laszlocph/demo-app
gitSha: xyz
vars:
MY_VAR: "value"