Compare commits

...

38 Commits

Author SHA1 Message Date
Laszlo Fogas 00becd0fab added a new chart static-site that build and host static sites. (#64)
Co-authored-by: Youcef Guichi <youcef@gimlet.io>
2023-03-30 13:54:27 +02:00
Ádám Sisák 0b7faf42ac README fixes (#65) 2023-03-30 13:08:24 +02:00
Github Action 6480058dba The next release version will be 0.45.0 2023-03-24 10:18:42 +00:00
Github Action e2d2025c38 Publishing 0.44.0 to the Helm repository 2023-03-24 10:18:41 +00:00
Laszlo Fogas 118cd8e1cb add initcontainers support (#63)
Co-authored-by: Youcef Guichi <youcef@gimlet.io>
2023-03-24 11:16:22 +01:00
Github Action 93892ec341 The next release version will be 0.44.0 2023-03-16 12:43:42 +00:00
Github Action 0a1db3d5cf Publishing 0.43.0 to the Helm repository 2023-03-16 12:43:41 +00:00
Youcef Guichi 56604353a2 Add support for ephemeral volume (configMap) (#61) 2023-03-16 13:28:02 +01:00
Youcef Guichi 96cbc7ec18 Update Api version for cronjob and PodDisruptionBudget (deprecated) (#60) 2023-03-01 12:14:50 +01:00
Github Action 2389545811 The next release version will be 0.43.0 2023-02-17 14:19:46 +00:00
Github Action 3da5c3eb13 Publishing 0.42.0 to the Helm repository 2023-02-17 14:19:45 +00:00
Github Actions 295e43c993 Updating chart dependency 2023-02-17 15:17:54 +01:00
Lajos Papp 6d8fb2930e add example ingress and env (#55) 2022-09-19 14:53:32 +02:00
Github Action d0d78eb1be The next release version will be 0.42.0 2022-09-15 07:36:15 +00:00
Github Action 8a95436200 Publishing 0.41.0 to the Helm repository 2022-09-15 07:36:14 +00:00
Marcel Lambacher afcfc36e5f Allow mounting of existing secrets (#53) 2022-09-15 09:35:08 +02:00
Marcel Lambacher 966f0672c7 Add flag to ignore default resources for containers (#52) 2022-09-12 08:55:05 +02:00
Marcel Lambacher 51ba51320a Dont generate claim for host path volumes (#54)
👏
2022-09-12 08:52:36 +02:00
Github Action 35cb630582 The next release version will be 0.41.0 2022-09-06 12:11:31 +00:00
Github Action 49396e0b8a Publishing 0.40.0 to the Helm repository 2022-09-06 12:11:30 +00:00
Marcel Lambacher 9a6bbba2de Support for PVC annotations (#51) 2022-09-06 14:10:07 +02:00
Laszlo Fogas c8fcb7359f Fixing broken link 2022-08-29 08:37:54 +02:00
Github Action 5c6164c2d6 The next release version will be 0.40.0 2022-08-02 13:23:58 +00:00
Github Action 8a8b63bab9 Publishing 0.39.0 to the Helm repository 2022-08-02 13:23:57 +00:00
Laszlo Fogas c3df85fef6 HostPath and emptyDir (#48) 2022-08-02 15:20:29 +02:00
szabogabor91 5e19d886e5 Add default-container annotation to foolproof exec and logs commands (#44) 2022-06-24 13:31:38 +02:00
Laszlo Fogas 95b686d20c Simplifying namespaces chart (#46) 2022-06-23 13:54:37 +02:00
Laszlo Fogas 285a6cca10 Namespace chart iteration (#45) 2022-06-23 12:56:21 +02:00
Github Action 3ee1679e1d The next release version will be 0.39.0 2022-06-02 11:53:48 +00:00
Github Action 7d49989247 Publishing 0.38.0 to the Helm repository 2022-06-02 11:53:47 +00:00
Github Action b17db72a63 The next release version will be 0.38.0 2022-06-01 09:36:15 +00:00
Github Action 0f6e89dbe0 Publishing 0.37.0 to the Helm repository 2022-06-01 09:36:14 +00:00
Github Actions 14cd62652c Annotation cheatsheet 2022-06-01 11:33:55 +02:00
Github Action a788cff019 The next release version will be 0.37.0 2022-04-25 06:45:12 +00:00
Github Action d951961c49 Publishing 0.36.0 to the Helm repository 2022-04-25 06:45:11 +00:00
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
81 changed files with 1894 additions and 1030 deletions
+11 -7
View File
@@ -12,20 +12,20 @@ kubeval:
rm -rf manifests && true
mkdir manifests
helm template charts/onechart --output-dir manifests
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.13.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.18.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.20.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.24.0
rm -rf manifests && true
mkdir manifests
helm template charts/cron-job --output-dir manifests
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.13.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.18.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.20.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.24.0
rm -rf manifests && true
mkdir manifests
helm template charts/namespaces --output-dir manifests
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.13.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.18.0
helm template charts/namespaces --output-dir manifests -f charts/namespaces/fixture.yaml
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.20.0
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.24.0
test:
helm dependency update charts/onechart
@@ -36,10 +36,14 @@ test:
helm unittest charts/namespaces
helm unittest charts/static-site
package:
helm dependency update charts/onechart
helm package charts/onechart
mv onechart*.tgz docs
helm dependency update charts/cron-job
helm package charts/cron-job
mv cron-job*.tgz docs
+2 -2
View File
@@ -4,7 +4,7 @@ A generic Helm chart for your application deployments.
Because no-one can remember the Kubernetes yaml syntax.
https://gimlet.io/docs
https://gimlet.io/docs/onechart-reference
## Getting started
@@ -30,7 +30,7 @@ helm install my-release onechart/onechart \
--set image.tag=1.19.3
```
See all [Examples](/examples/deploying-an-image)
See all [Examples](/website/docs/examples/)
## Contribution Guidelines
+1 -1
View File
@@ -15,4 +15,4 @@ 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
version: 0.2.0
@@ -0,0 +1,16 @@
{{- define "common.customFileConfigmap.tpl" -}}
{{- range .Values.volumes }}
{{- if .fileName }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "common.robustName" .fileName }}
namespace: {{ $.Release.Namespace }}
data:
{{ .fileName }}: |
{{- .fileContent | nindent 4 }}
{{- end }}
{{- end }}
{{- end -}}
+6 -2
View File
@@ -1,6 +1,6 @@
{{- define "common.pvc.tpl" -}}
{{- range .Values.volumes }}
{{- if not .existingClaim }}
{{- if not (or .existingClaim .hostPath .fileName .emptyDir .existingConfigMap) }}
{{- $robustName := include "common.robustName" $.Release.Name }}
---
apiVersion: v1
@@ -8,6 +8,10 @@ kind: PersistentVolumeClaim
metadata:
name: {{ printf "%s-%s" $robustName .name }}
namespace: {{ $.Release.Namespace }}
{{- if .pvcAnnotations }}
annotations:
{{- toYaml .pvcAnnotations | nindent 4 }}
{{- end }}
spec:
accessModes:
- {{ .accessMode | default "ReadWriteOnce" }}
@@ -19,4 +23,4 @@ spec:
storage: {{ .size | default "1Gi" }}
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}
+16 -2
View File
@@ -1,10 +1,15 @@
{{- define "common.volumeMountsRef.tpl" -}}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
{{- if or (or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets) .Values.existingFileSecrets }}
volumeMounts: &volumeMounts
{{- range .Values.volumes }}
{{- if not (hasPrefix "init-" .name) }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- end }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{- end }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
@@ -15,5 +20,14 @@ volumeMounts: &volumeMounts
mountPath: {{ .path }}
readOnly: true
{{- end }}
{{- range .Values.existingFileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- if .subPath}}
subPath: {{ .subPath }}
{{- end }}
readOnly: true
{{- end }}
{{- end }}
{{- end }}
+23 -2
View File
@@ -1,15 +1,31 @@
{{- define "common.volumesRef.tpl" -}}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
{{- if or (or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets) .Values.existingFileSecrets }}
volumes:
{{- range .Values.volumes }}
- name: {{ .name }}
{{- if .emptyDir }}
emptyDir: {}
{{- else if .existingConfigMap }}
configMap:
name: {{ .existingConfigMap }}
{{- else if .fileName }}
configMap:
name: {{ template "common.robustName" .fileName }}
{{- else if .hostPath }}
hostPath:
path: {{ .hostPath.path }}
{{- if .hostPath.type }}
type: {{ .hostPath.type }}
{{- end }}
{{- else }}
persistentVolumeClaim:
{{- if .existingClaim }}
claimName: {{ .existingClaim }}
{{ else }}
claimName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
secret:
@@ -20,5 +36,10 @@ volumes:
secret:
secretName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- range .Values.existingFileSecrets }}
- name: {{ .name }}
secret:
secretName: {{ .name }}
{{- end }}
{{- end }}
{{- end -}}
+3 -3
View File
@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: file://../common
version: 0.1.0
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
generated: "2021-08-05T10:18:17.533366128+02:00"
version: 0.2.0
digest: sha256:ea028bf07fdc361daabca0c0155e4511cc4fffda94d2f697f4d16013f250c8a8
generated: "2023-02-17T15:14:21.719376584+01:00"
+2 -2
View File
@@ -15,9 +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.35.0
version: 0.45.0
dependencies:
- name: common
version: 0.1.0
version: 0.2.0
repository: file://../common
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1,4 +1,4 @@
apiVersion: batch/v1beta1
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ .Release.Name }}
+1 -1
View File
@@ -15,4 +15,4 @@ 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.2.0
version: 0.3.0
+18
View File
@@ -0,0 +1,18 @@
namespaces:
- name: staging
quota:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 1
memory: 1
podMaximumResources:
cpu: 4
memory: "8Gi"
podDefaultResources:
cpu: "200m"
memory: "200Mi"
podResourceOvercommit:
cpu: 2
memory: 1
+19 -29
View File
@@ -1,22 +1,5 @@
{{- range .Values.namespaces }}
{{- $limits := $.Values.pod.limits }}
{{- if .pod }}
{{- if .pod.limits }}
{{- $limits = .pod.limits }}
{{- end }}
{{- end }}
{{- $overcommit := $.Values.pod.overcommit }}
{{- if .pod }}
{{- if .pod.overcommit }}
{{- $overcommit = .pod.overcommit }}
{{- end }}
{{- end }}
{{- $defaults := $.Values.pod.defaults }}
{{- if .pod }}
{{- if .pod.defaults }}
{{- $defaults = .pod.defaults }}
{{- end }}
{{- end }}
{{- if and .podMaximumResources (and .podDefaultResources .podResourceOvercommit) }}
---
apiVersion: v1
kind: LimitRange
@@ -26,19 +9,26 @@ metadata:
spec:
limits:
- type: Container
{{- if .podMaximumResources }}
max:
cpu: 4
memory: "8Gi"
min:
cpu: "100m"
memory: "50Mi"
cpu: {{ .podMaximumResources.cpu }}
memory: {{ .podMaximumResources.memory }}
{{- end }}
{{- if .podDefaultResources }}
default:
cpu: {{ $defaults.cpu }}
memory: {{ $defaults.memory }}
cpu: {{ .podDefaultResources.cpu }}
memory: {{ .podDefaultResources.memory }}
defaultRequest:
cpu: {{ $defaults.cpu }}
memory: {{ $defaults.memory }}
cpu: {{ .podDefaultResources.cpu }}
memory: {{ .podDefaultResources.memory }}
{{- end }}
maxLimitRequestRatio:
cpu: {{ $overcommit.cpu }}
memory: {{ $overcommit.memory }}
{{- if .podResourceOvercommit }}
cpu: {{ .podResourceOvercommit.cpu }}
memory: {{ .podResourceOvercommit.memory }}
{{ else }}
cpu: 1
memory: 1
{{- end }}
{{- end }}
{{- end }}
+2 -2
View File
@@ -4,8 +4,8 @@ apiVersion: v1
kind: Namespace
metadata:
name: {{ .name }}
{{- if .annotations }}
annotations:
{{- if .annotations }}
{{- toYaml .annotations | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}
@@ -1,16 +1,5 @@
{{- range .Values.namespaces }}
{{- $budget := $.Values.namespace.budget }}
{{- if .namespace }}
{{- if .namespace.budget }}
{{- $budget = .namespace.budget }}
{{- end }}
{{- end }}
{{- $overcommit := $.Values.namespace.overcommit }}
{{- if .namespace }}
{{- if .namespace.overcommit }}
{{- $overcommit = .namespace.overcommit }}
{{- end }}
{{- end }}
{{- if and .quota .overcommit }}
---
apiVersion: v1
kind: ResourceQuota
@@ -18,9 +7,10 @@ metadata:
name: {{ .name }}
spec:
hard:
limits.cpu: {{ $budget.cpu | mul $overcommit.cpu }}
limits.memory: {{ $budget.memory | regexFind "[1-9]+" | mul $overcommit.memory }}{{ $budget.memory | regexFind "[a-zA-Z]+" }}
requests.cpu: {{ $budget.cpu }}
requests.memory: {{ $budget.memory }}
requests.storage: {{ $budget.storage }}
limits.cpu: {{ .quota.cpu | mul .overcommit.cpu }}
limits.memory: {{ .quota.memory | regexFind "[1-9]+" | mul .overcommit.memory }}{{ .quota.memory | regexFind "[a-zA-Z]+" }}
requests.cpu: {{ .quota.cpu }}
requests.memory: {{ .quota.memory }}
requests.storage: {{ .quota.storage }}
{{- end }}
{{- end -}}
+11 -47
View File
@@ -2,52 +2,19 @@ suite: test deployment
templates:
- limit-range.yaml
tests:
- it: Should set default limits
set:
pod:
limits:
cpu: 4
memory: "8Gi"
defaults:
cpu: "200m"
memory: "200Mi"
overcommit:
cpu: 10
memory: 2
asserts:
- equal:
path: spec.limits
value:
- type: Container
max:
cpu: 4
memory: "8Gi"
min:
cpu: "100m"
memory: "50Mi"
default:
cpu: "200m"
memory: "200Mi"
defaultRequest:
cpu: "200m"
memory: "200Mi"
maxLimitRequestRatio:
cpu: 10
memory: 2
- it: Should set namespace specific limits
set:
namespaces:
- name: staging
pod:
limits:
cpu: 4
memory: "8Gi"
defaults:
cpu: "200m"
memory: "200Mi"
overcommit:
cpu: 10
memory: 2
podMaximumResources:
cpu: 4
memory: "8Gi"
podDefaultResources:
cpu: "200m"
memory: "200Mi"
podResourceOvercommit:
cpu: 2
memory: 1
asserts:
- equal:
path: spec.limits
@@ -56,9 +23,6 @@ tests:
max:
cpu: 4
memory: "8Gi"
min:
cpu: "100m"
memory: "50Mi"
default:
cpu: "200m"
memory: "200Mi"
@@ -66,5 +30,5 @@ tests:
cpu: "200m"
memory: "200Mi"
maxLimitRequestRatio:
cpu: 10
memory: 2
cpu: 2
memory: 1
+7
View File
@@ -10,3 +10,10 @@ tests:
- equal:
path: metadata.name
value: staging
- it: Should not set annotations if none provided in values
set:
namespaces:
- name: staging
asserts:
- isNull:
path: metadata.annotations
@@ -2,16 +2,37 @@ suite: test deployment
templates:
- resource-quota.yaml
tests:
- it: Should set default quota values
- it: Should set namespace specific quotas
set:
namespace:
budget:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 2
memory: 1
namespaces:
- name: staging
quota:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 1
memory: 1
asserts:
- equal:
path: spec.hard
value:
limits.cpu: 32
limits.memory: "64Gi"
requests.cpu: 32
requests.memory: "64Gi"
requests.storage: "500Gi"
- it: Should handle overcommit
set:
namespaces:
- name: staging
quota:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 2
memory: 1
asserts:
- equal:
path: spec.hard
@@ -21,29 +42,3 @@ tests:
requests.cpu: 32
requests.memory: "64Gi"
requests.storage: "500Gi"
- it: Should set namespace specific quotas
set:
namespaces:
- name: staging
namespace:
budget:
cpu: 8
memory: "16Gi"
storage: "100Gi"
namespace:
budget:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 2
memory: 1
asserts:
- equal:
path: spec.hard
value:
limits.cpu: 16
limits.memory: "16Gi"
requests.cpu: 8
requests.memory: "16Gi"
requests.storage: "100Gi"
-715
View File
@@ -1,715 +0,0 @@
{
"$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": {},
"examples": [
{
"namespaces": [
{
"name": "staging",
"namespace": {
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
},
"pod": {
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
}
],
"namespace": {
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
},
"pod": {
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
}
],
"required": [
"namespaces",
"namespace",
"pod"
],
"properties": {
"namespaces": {
"$id": "#/properties/namespaces",
"type": "array",
"title": "The namespaces schema",
"description": "An explanation about the purpose of this instance.",
"default": [],
"examples": [
[
{
"name": "staging",
"namespace": {
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
},
"pod": {
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
}
]
],
"additionalItems": true,
"items": {
"$id": "#/properties/namespaces/items",
"anyOf": [
{
"$id": "#/properties/namespaces/items/anyOf/0",
"type": "object",
"title": "The first anyOf schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"name": "staging",
"namespace": {
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
},
"pod": {
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
}
],
"required": [
"name",
"namespace",
"pod"
],
"properties": {
"name": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/name",
"type": "string",
"title": "The name schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"staging"
]
},
"namespace": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace",
"type": "object",
"title": "The namespace schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
}
],
"required": [
"budget",
"overcommit"
],
"properties": {
"budget": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget",
"type": "object",
"title": "The budget schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
}
],
"required": [
"cpu",
"memory",
"storage"
],
"properties": {
"cpu": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
32
]
},
"memory": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"64Gi"
]
},
"storage": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/storage",
"type": "string",
"title": "The storage schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"500Gi"
]
}
},
"additionalProperties": true
},
"overcommit": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit",
"type": "object",
"title": "The overcommit schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 2,
"memory": 1
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
2
]
},
"memory": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit/properties/memory",
"type": "integer",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
1
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"pod": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod",
"type": "object",
"title": "The pod schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
],
"required": [
"limits",
"defaults",
"overcommit"
],
"properties": {
"limits": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits",
"type": "object",
"title": "The limits schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 4,
"memory": "8Gi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
4
]
},
"memory": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"8Gi"
]
}
},
"additionalProperties": true
},
"defaults": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults",
"type": "object",
"title": "The defaults schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": "200m",
"memory": "200Mi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults/properties/cpu",
"type": "string",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"200m"
]
},
"memory": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"200Mi"
]
}
},
"additionalProperties": true
},
"overcommit": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit",
"type": "object",
"title": "The overcommit schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 10,
"memory": 2
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
10
]
},
"memory": {
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit/properties/memory",
"type": "integer",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
2
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
]
}
},
"namespace": {
"$id": "#/properties/namespace",
"type": "object",
"title": "The namespace schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"budget": {
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
},
"overcommit": {
"cpu": 2,
"memory": 1
}
}
],
"required": [
"budget",
"overcommit"
],
"properties": {
"budget": {
"$id": "#/properties/namespace/properties/budget",
"type": "object",
"title": "The budget schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 32,
"memory": "64Gi",
"storage": "500Gi"
}
],
"required": [
"cpu",
"memory",
"storage"
],
"properties": {
"cpu": {
"$id": "#/properties/namespace/properties/budget/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
32
]
},
"memory": {
"$id": "#/properties/namespace/properties/budget/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"64Gi"
]
},
"storage": {
"$id": "#/properties/namespace/properties/budget/properties/storage",
"type": "string",
"title": "The storage schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"500Gi"
]
}
},
"additionalProperties": true
},
"overcommit": {
"$id": "#/properties/namespace/properties/overcommit",
"type": "object",
"title": "The overcommit schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 2,
"memory": 1
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/namespace/properties/overcommit/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
2
]
},
"memory": {
"$id": "#/properties/namespace/properties/overcommit/properties/memory",
"type": "integer",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
1
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"pod": {
"$id": "#/properties/pod",
"type": "object",
"title": "The pod schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"limits": {
"cpu": 4,
"memory": "8Gi"
},
"defaults": {
"cpu": "200m",
"memory": "200Mi"
},
"overcommit": {
"cpu": 10,
"memory": 2
}
}
],
"required": [
"limits",
"defaults",
"overcommit"
],
"properties": {
"limits": {
"$id": "#/properties/pod/properties/limits",
"type": "object",
"title": "The limits schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 4,
"memory": "8Gi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/pod/properties/limits/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
4
]
},
"memory": {
"$id": "#/properties/pod/properties/limits/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"8Gi"
]
}
},
"additionalProperties": true
},
"defaults": {
"$id": "#/properties/pod/properties/defaults",
"type": "object",
"title": "The defaults schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": "200m",
"memory": "200Mi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/pod/properties/defaults/properties/cpu",
"type": "string",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"200m"
]
},
"memory": {
"$id": "#/properties/pod/properties/defaults/properties/memory",
"type": "string",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"200Mi"
]
}
},
"additionalProperties": true
},
"overcommit": {
"$id": "#/properties/pod/properties/overcommit",
"type": "object",
"title": "The overcommit schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"cpu": 10,
"memory": 2
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/pod/properties/overcommit/properties/cpu",
"type": "integer",
"title": "The cpu schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
10
]
},
"memory": {
"$id": "#/properties/pod/properties/overcommit/properties/memory",
"type": "integer",
"title": "The memory schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
2
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
+1 -40
View File
@@ -1,40 +1 @@
namespaces:
- name: staging
namespace:
budget:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 2
memory: 1
pod:
limits:
cpu: 4
memory: "8Gi"
defaults:
cpu: "200m"
memory: "200Mi"
overcommit:
cpu: 10
memory: 2
namespace:
budget:
cpu: 32
memory: "64Gi"
storage: "500Gi"
overcommit:
cpu: 2
memory: 1
pod:
limits:
cpu: 4
memory: "8Gi"
defaults:
cpu: "200m"
memory: "200Mi"
overcommit:
cpu: 10
memory: 2
namespaces: []
+3 -3
View File
@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: file://../common
version: 0.1.0
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
generated: "2021-08-05T10:39:10.053810673+02:00"
version: 0.2.0
digest: sha256:ea028bf07fdc361daabca0c0155e4511cc4fffda94d2f697f4d16013f250c8a8
generated: "2023-02-17T15:13:57.926786542+01:00"
+2 -2
View File
@@ -15,9 +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.35.0
version: 0.45.0
dependencies:
- name: common
version: 0.1.0
version: 0.2.0
repository: file://../common
Binary file not shown.
Binary file not shown.
+12 -1
View File
@@ -112,7 +112,18 @@
"schemaIDs": [
"#/properties/volumes"
],
"uiSchema": {},
"uiSchema": {
"#/properties/volumes": {
"items": {
"emptyDir": {
"ui:widget": "hidden"
},
"configMapValue": {
"ui:widget": "textarea"
}
}
}
},
"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"
@@ -0,0 +1 @@
{{- include "common.customFileConfigmap.tpl" . -}}
+24 -2
View File
@@ -5,10 +5,11 @@ metadata:
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
{{- if .Values.gitSha }}
annotations:
kubectl.kubernetes.io/default-container: {{ template "robustName" .Release.Name }}
{{- if .Values.gitSha }}
gimlet.io/git-sha: {{ .Values.gitSha }}
{{- end }}
{{- end }}
spec:
replicas: {{ .Values.replicas }}
selector:
@@ -49,6 +50,25 @@ spec:
{{- if .Values.serviceAccount }}
serviceAccountName: {{ .Values.serviceAccount }}
{{- end }}
initContainers:
{{- range .Values.initContainers }}
- name: {{ .name }}
image: "{{ .image }}:{{ .tag }}"
imagePullPolicy: {{ .imagePullPolicy | default "IfNotPresent" }}
{{- if .command }}
command:
- {{ $.Values.shell }}
- -c
- {{ .command | quote}}
{{- end }}
volumeMounts:
{{- range $.Values.volumes }}
{{if (or (hasPrefix "shared-" .name) (hasPrefix "init-" .name))}}
- mountPath: {{ .path }}
name: {{ .name }}
{{- end }}
{{- end }}
{{- end }}
containers:
- name: {{ template "robustName" .Release.Name }}
securityContext: &securityContext
@@ -95,8 +115,10 @@ spec:
{{- end }}
{{- end }}
{{- include "common.volumeMountsRef.tpl" . | nindent 10 }}
{{- if not .Values.resources.ignore }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- end }}
{{- if .Values.sidecar }}
- name: {{ template "robustName" .Release.Name }}-sidecar
securityContext: *securityContext
@@ -0,0 +1,3 @@
{{- if .Values.extraDeploy }}
{{ .Values.extraDeploy }}
{{- end }}
+1 -1
View File
@@ -1,5 +1,5 @@
{{- if and (.Values.podDisruptionBudgetEnabled) (gt (.Values.replicas | int64) 1) }}
apiVersion: policy/v1beta1
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ template "robustName" .Release.Name }}
@@ -0,0 +1,22 @@
suite: test deployment
templates:
- custom-file-configmap.yaml
tests:
- it: Should create configmaps for custom string files
set:
volumes:
- fileName: myFile.conf
fileContent: |
blablabla
bla
path: /randomPath/myFile.conf
subPath: myFile.conf
asserts:
- hasDocuments:
count: 1
- equal:
path: data
value:
myFile.conf: |
blablabla
bla
@@ -0,0 +1,44 @@
suite: test deployment
templates:
- deployment.yaml
- configmap.yaml
- pvc.yaml
tests:
- it: Should mount volume
set:
existingFileSecrets:
- name: my-existing-secret
path: /config
asserts:
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: my-existing-secret
mountPath: /config
readOnly: true
- it: Should mount volume with optional subPath
set:
existingFileSecrets:
- name: my-existing-secret
path: /config/config.yaml
subPath: config.yml
asserts:
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: my-existing-secret
mountPath: /config/config.yaml
subPath: config.yml
readOnly: true
- it: Should reference volume
set:
existingFileSecrets:
- name: my-existing-secret
path: /config
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: my-existing-secret
secret:
secretName: my-existing-secret
@@ -0,0 +1,31 @@
suite: test deployment
templates:
- deployment.yaml
- configmap.yaml
tests:
- it: Should set name, image and tag
set:
initContainers:
- name: pod1
image: nginx
tag: 1.2.2
asserts:
- equal:
path: spec.template.spec.initContainers[0].name
value: pod1
- equal:
path: spec.template.spec.initContainers[0].image
value: "nginx:1.2.2"
- it: Should set command
set:
initContainers:
- command: "while true; do date; sleep 2; done &&
ls /data &&
printf something"
asserts:
- equal:
path: spec.template.spec.initContainers[0].command
value: ['/bin/sh', '-c', 'while true; do date; sleep 2; done && ls /data && printf something']
@@ -0,0 +1,18 @@
suite: test deployment
templates:
- deployment.yaml
- configmap.yaml
tests:
- it: Should render resoucres if not ignored by default
set:
{}
asserts:
- isNotNull:
path: spec.template.spec.containers[0].resources
- it: Should ignore resources if ignore flag is set
set:
resources:
ignore: true
asserts:
- isNull:
path: spec.template.spec.containers[0].resources
@@ -74,3 +74,148 @@ tests:
- name: data
persistentVolumeClaim:
claimName: my-static-claim
- it: Should use emptyDir
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
emptyDir: true
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: data
emptyDir: {}
- it: Should use hostPath
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
hostPath:
path: /somewhere/over/the/rainbow
type: DirectoryOrCreate
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: data
hostPath:
path: /somewhere/over/the/rainbow
type: DirectoryOrCreate
- it: Should use hostPath without type
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
hostPath:
path: /somewhere/over/the/rainbow
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: data
hostPath:
path: /somewhere/over/the/rainbow
- it: Should use emptyDir
set:
volumes:
- name: myScratchDisk
path: /randomPath
emptyDir: true
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: myScratchDisk
emptyDir: {}
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: myScratchDisk
mountPath: /randomPath
- it: Should use a configMap
set:
volumes:
- existingConfigMap: my-configmap
name: volume-name
path: /randomPath/app.conf
subPath: app.conf
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: volume-name
configMap:
name: my-configmap
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: volume-name
mountPath: /randomPath/app.conf
subPath: app.conf
- it: Should use a configmap with custom value
set:
volumes:
- name: volume-name
fileName: myfile.conf
fileContent: |
blablabla
bla
path: /randomPath/myfile.conf
subPath: myfile.conf
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: volume-name
configMap:
name: myfile-conf
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: volume-name
mountPath: /randomPath/myfile.conf
subPath: myfile.conf
- it: Should mount a volume only for the init container
set:
initContainers:
- name : pod
volumes:
- name: init-volume
path: /data
emptyDir: true
asserts:
- equal:
path: spec.template.spec.volumes
value:
- name: init-volume
emptyDir: {}
- equal:
path: spec.template.spec.initContainers[0].volumeMounts
value:
- name: init-volume
mountPath: /data
- notEqual:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: init-volume
emptyDir: {}
- it: Should mount a shared volume between the main container and the init container
set:
initContainers:
- name: pod
volumes:
- name: shared-volume
path: /data
emptyDir: true
asserts:
- equal:
path: spec.template.spec.initContainers[0].volumeMounts
value:
- name: shared-volume
mountPath: /data
- equal:
path: spec.template.spec.containers[0].volumeMounts
value:
- name: shared-volume
mountPath: /data
@@ -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
+24
View File
@@ -13,6 +13,20 @@ tests:
- equal:
path: spec.storageClassName
value: default
- it: Should assign annotations to the PVC
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
size: 10Gi
storageClass: default
pvcAnnotations:
rancher.io/local-path/volume-type: local
asserts:
- equal:
path: metadata.annotations
value:
rancher.io/local-path/volume-type: local
- it: Should not generate a claim when using existing claim
set:
volumes:
@@ -22,3 +36,13 @@ tests:
asserts:
- hasDocuments:
count: 0
- it: Should not generate a claim when using host path
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
hostPath:
path: /data/test
asserts:
- hasDocuments:
count: 0
+289 -45
View File
@@ -84,6 +84,53 @@
}
}
},
"initContainers": {
"$id": "#/properties/initcontainers",
"type": "array",
"title": "Init Containers",
"default": [],
"additionalItems": true,
"items": {
"$id": "#/properties/initcontainers/items",
"type": "object",
"anyOf": [
{
"id": "#/properties/volumes/oneOf/0",
"title": "InitContainer",
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The name of the init container"
},
"image": {
"type": "string",
"title": "Image"
},
"tag": {
"type": "string",
"title": "Tag"
},
"imagePullPolicy": {
"type": "string",
"title": "Command",
"default": "IfNotPresent"
},
"command": {
"type": "string",
"title": "Command"
}
},
"required": [
"name",
"image",
"tag"
]
}
]
}
},
"replicas": {
"$id": "#/properties/replicas",
"type": "integer",
@@ -226,6 +273,16 @@
],
"required": [],
"properties": {
"ignore": {
"$id": "#/properties/resources/properties/ignore",
"type": "boolean",
"title": "Ignore",
"description": "If set to true, resource configuration will be ignored",
"default": false,
"examples": [
true
]
},
"requests": {
"$id": "#/properties/resources/properties/requests",
"type": "object",
@@ -672,7 +729,7 @@
"$id": "#/properties/ingress/properties/annotations",
"type": "object",
"title": "Annotations",
"description": "",
"description": "Annotations are used to control ingress behavior. See the full list for the Ingress Nginx project at https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/. Use the `cert-manager.io/cluster-issuer:\"letsencrypt\"` one to request TLS certificates, `kubernetes.io/ingress.class: \"nginx\"` to select an ingress controller.",
"default": {},
"examples": [
{
@@ -683,6 +740,49 @@
}
}
},
"existingFileSecrets": {
"$id": "#/properties/existingFileSecrets",
"type": "array",
"title": "Existing file secrets",
"description": "Allows to mount existing secrets into a container",
"default": [],
"additionalItems": true,
"items": {
"$id": "#/properties/existingFileSecrets/items",
"type": "object",
"anyOf": [
{
"id": "#/properties/existingFileSecrets/oneOf/0",
"title": "existingFileSecrets",
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The name of the existing secret to mount",
"default": "data"
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
},
"subPath": {
"type": "string",
"title": "SubPath",
"description": "The optinal mount subpath inside the container, to only mount a specific file but not a complete directory.",
"default": "config.yaml"
}
},
"required": [
"name",
"path"
]
}
]
}
},
"volumes": {
"$id": "#/properties/volumes",
"type": "array",
@@ -692,64 +792,70 @@
"items": {
"$id": "#/properties/volumes/items",
"type": "object",
"oneOf": [
"anyOf": [
{
"id": "#/properties/volumes/oneOf/0",
"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"
]
},
{
"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"
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
},
"size": {
"type": "string",
"title": "Size",
"description": "eg: 10Gi"
},
"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"
},
"pvcAnnotations": {
"type": "object",
"title": "Annotations",
"description": "Annotations are used to control the persistance claim behavior.",
"default": {},
"examples": [
{
"rancher.io/local-path/volume-type": "local"
}
],
"additionalProperties": true
}
},
"required": [
"name",
"path",
"size"
]
},
{
"id": "#/properties/volumes/oneOf/1",
"title": "Use an existing volume claim",
"type": "object",
"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": ""
"description": "Use an existing PersistentVolumeClaim"
},
"path": {
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
@@ -757,7 +863,145 @@
}
},
"required": [
"name", "path", "existingClaim"
"name",
"path",
"existingClaim"
]
},
{
"id": "#/properties/volumes/oneOf/2",
"title": "Use a path from the host",
"type": "object",
"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"
},
"hostPath": {
"type": "object",
"title": "Path on the host",
"description": "Use a physical path on the host machine",
"properties": {
"path": {
"type": "string",
"title": "Path on Host",
"description": "Use a physical path on the host machine"
},
"type": {
"type": "string",
"title": "Path Type",
"enum": [
"DirectoryOrCreate",
"Directory",
"FileOrCreate",
"File",
"Socket",
"CharDevice",
"BlockDevice"
]
}
},
"required": [
"path"
]
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
}
},
"required": [
"name",
"path",
"hostPath"
]
},
{
"id": "#/properties/volumes/oneOf/3",
"title": "Use an ephemeral volume",
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"default": "ephemeral-volume"
},
"emptyDir": {
"type": "boolean",
"title": "ephemeral volume (emptyDir)",
"description": "Enable to use a non-persistent disk",
"default": true
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
}
},
"required": [
"name",
"emptyDir",
"path"
]
},
{
"id": "#/properties/volumes/oneOf/4",
"title": "Mount an existing configMap as a file",
"type": "object",
"properties": {
"existingConfigMap": {
"type": "string",
"title": "Name",
"description": "The name of the configMap to mount",
"default": "data"
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data/dummy.conf"
},
"subPath": {
"type": "string",
"title": "subPath",
"description": "Mount single file",
"default": "dummy.conf"
}
},
"required": [
"existingConfigMap",
"path"
]
},
{
"id": "#/properties/volumes/oneOf/5",
"title": "Custom string to mount as a file",
"type": "object",
"properties": {
"fileName": {
"type": "string",
"title": "File name"
},
"fileContent": {
"type": "string",
"title": "File content"
},
"path": {
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
}
},
"required": [
"fileName",
"fileContent",
"path"
]
}
]
+10
View File
@@ -3,6 +3,16 @@ image:
tag: "latest"
pullPolicy: IfNotPresent
# ingress:
# host: chart-example.local
# ingressClassName: nginx
# tlsEnabled: true
# annotations:
# cert-manager.io/cluster-issuer: letsencrypt-staging
# vars:
# MY_VAR: "value"
replicas: 1
nameOverride: ""
+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: static-site
description: Chart to build and deploy static sites
# 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: 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.0
+31
View File
@@ -0,0 +1,31 @@
[
{
"schemaIDs": [
"#/properties/gitCloneUrl",
"#/properties/buildImage",
"#/properties/buildTag",
"#/properties/buildScript",
"#/properties/builtAssets"
],
"uiSchema": {
"#/properties/buildScript":{
"ui:widget": "textarea"
}
},
"metaData": {
"name": "Build",
"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"
}
},
{
"schemaIDs": [
"#/properties/ingress"
],
"uiSchema": {},
"metaData": {
"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"
}
}
]
+1
View File
@@ -0,0 +1 @@
+71
View File
@@ -0,0 +1,71 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "staticSite.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "staticSite.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "staticSite.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "staticSite.labels" -}}
helm.sh/chart: {{ include "staticSite.chart" . }}
{{ include "staticSite.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "staticSite.selectorLabels" -}}
app.kubernetes.io/name: {{ include "staticSite.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "staticSite.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "staticSite.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- 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 }}
@@ -0,0 +1,61 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "robustName" .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "staticSite.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "staticSite.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "staticSite.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "robustName" .Release.Name }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
volumes:
- name: static-files
emptyDir: {}
initContainers:
- name: init-con
image: {{ .Values.buildImage }}:{{ .Values.buildTag }}
{{- if .Values.buildScript }}
command:
- sh
- -c
- |
git clone {{ .Values.gitCloneUrl}} &&
cd {{ regexFind "([^\\/]+$)" .Values.gitCloneUrl | replace ".git" "" }} &&
{{ .Values.buildScript | nindent 12}}
mkdir -p /usr/share/nginx/html &&
cp -r ./{{ .Values.builtAssets }}. /usr/share/nginx/html
{{- end }}
volumeMounts:
- name: static-files
mountPath: /usr/share/nginx/html
containers:
- name: {{ template "robustName" .Release.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: static-files
mountPath: /usr/share/nginx/html
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
+52
View File
@@ -0,0 +1,52 @@
{{/* 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: {{ $resourceName }}
namespace: {{ .root.Release.Namespace }}
labels:
{{- include "staticSite.labels" .root | nindent 4 }}
{{- if or (or .root.Values.gitSha .ingress.annotations) .root.Values.gitRepository }}
annotations:
{{- if .ingress.annotations }}
{{- toYaml .ingress.annotations | nindent 4 }}
{{- end }}
{{- end }}
spec:
{{- if .ingress.ingressClassName }}
ingressClassName: {{ .ingress.ingressClassName }}
{{- end }}
{{- if default false .ingress.tlsEnabled }}
tls:
- hosts:
- {{ .ingress.host | quote }}
secretName: {{ printf "tls-%s" $resourceName }}
{{- end }}
rules:
- host: {{ .ingress.host | quote }}
http:
paths:
- path: {{ .ingress.path | default "/" | quote }}
pathType: "Prefix"
backend:
service:
name: {{ $robustName }}
port:
number: {{ .root.Values.service.port }}
{{- end }}
{{- with .Values.ingress }}
{{- template "onechart.ingress" (dict "root" $ "ingress" .) }}
{{- end }}
{{- range .Values.ingresses }}
{{template "onechart.ingress" (dict "root" $ "ingress" . "longName" true) }}
{{- end }}
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "robustName" .Release.Name }}
labels:
{{- include "staticSite.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "staticSite.selectorLabels" . | nindent 4 }}
@@ -0,0 +1,12 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "robustName" .Release.Name }}
labels:
{{- include "staticSite.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
@@ -0,0 +1,15 @@
suite: test deployment
templates:
- deployment.yaml
tests:
- it: Should set image, tag and command
set:
gitCloneUrl: https:/github.com/mycompany/myrepo.git
buildImage: nginx
buildTag: x.y.z
asserts:
- equal:
path: spec.template.spec.initContainers[0].image
value: nginx:x.y.z
@@ -0,0 +1,120 @@
suite: test deployment
templates:
- ingress.yaml
tests:
- it: Should set Ingress host name
set:
ingress:
host: chart-example.local
tlsEnabled: true
asserts:
- equal:
path: spec.tls
value:
- hosts:
- chart-example.local
secretName: tls-release-name
- equal:
path: spec.rules
value:
- host: chart-example.local
http:
paths:
- 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
tlsEnabled: true
asserts:
- equal:
path: spec.tls
value:
- hosts:
- feature/my_branch.local
secretName: tls-release-name
- equal:
path: spec.rules
value:
- host: feature/my_branch.local
http:
paths:
- path: "/"
pathType: "Prefix"
backend:
service:
name: release-name
port:
number: 80
- it: Should set Ingress annotation
set:
ingress:
host: chart-example.local
annotations:
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,12 @@
suite: test deployment
templates:
- ingress.yaml
tests:
- it: Should use service port
set:
ingress:
host: chart-example.local
asserts:
- equal:
path: spec.rules[0].http.paths[0].backend.service.port.number
value: 1234
+125
View File
@@ -0,0 +1,125 @@
{
"$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": {},
"examples": [
{
"gitCloneUrl": "https://github.com/gimlet-io/hugo-site.git",
"buildImage": "node",
"buildTag": "latest",
"buildScript": "npm install && npm install -g gatsby-cli && gatsby build",
"builtAssets": "public/"
}
],
"required": [
"gitCloneUrl",
"buildImage",
"buildTag",
"buildScript",
"builtAssets"
],
"properties": {
"gitCloneUrl": {
"$id": "#/properties/gitCloneUrl",
"type": "string",
"title": "Repo url",
"description": "The static site's git repository",
"default": "https://github.com/gimlet-io/hugo-site.git"
},
"buildImage": {
"$id": "#/properties/buildImage",
"type": "string",
"title": "Build image",
"description": "The image that will be used for the build proccess",
"default":"bitnami/git"
},
"buildTag": {
"$id": "#/properties/buildTag",
"type": "string",
"title": "Image tag",
"default": "latest"
},
"buildScript": {
"$id": "#/properties/buildScript",
"type": "string",
"title": "Build script",
"description": "Commands required for the build to be completed",
"default": "# !/usr/bin/env bash\n# pre -reqs\napt-get update && apt-get install -y wget\n\n# Setting up Hugo \nwget https://github.com/gohugoio/hugo/releases/download/v0.111.3/hugo_0.111.3_Linux-64bit.tar.gz &&\ntar -xzf hugo_0.111.3_Linux-64bit.tar.gz &&\nchmod +x hugo\n\n./hugo"
},
"builtAssets": {
"$id": "#/properties/builtAssets",
"type": "string",
"title": "Built assets",
"description": "The folder containing the build's generated files",
"default": "public/"
},
"ingress": {
"$id": "#/properties/ingress",
"type": "object",
"title": "Incoming traffic",
"description": "",
"default": {},
"examples": [
{
"tlsEnabled": false,
"annotations": {
"kubernetes.io/ingress.class": "nginx"
},
"host": "my-release.mycompany.com"
}
],
"required": [],
"properties": {
"host": {
"$id": "#/properties/ingress/properties/host",
"type": "string",
"title": "Host Name",
"description": "Where your application will be accessible",
"default": "",
"examples": [
"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",
"title": "HTTPS",
"description": "",
"default": false,
"examples": [
false
]
},
"annotations": {
"$id": "#/properties/ingress/properties/annotations",
"type": "object",
"title": "Annotations",
"description": "Annotations are used to control ingress behavior. See the full list for the Ingress Nginx project at https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/. Use the `cert-manager.io/cluster-issuer:\"letsencrypt\"` one to request TLS certificates, `kubernetes.io/ingress.class: \"nginx\"` to select an ingress controller.",
"default": {},
"examples": [
{
"kubernetes.io/ingress.class": "nginx"
}
],
"additionalProperties": true
}
}
}
},
"additionalProperties": true
}
+79
View File
@@ -0,0 +1,79 @@
# Default values for static-site.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nginx
tag: latest
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext:
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
runAsUser: 0
service:
type: ClusterIP
port: 80
# ingress:
# host: dummyapp.127.0.0.1.nip.io
# ingressClassName: nginx
# tlsEnabled: false
# annotations:
# cert-manager.io/cluster-issuer: letsencrypt-staging
resources:
requests:
cpu: 200m
memory: 200Mi
limits:
cpu: 200m
memory: 200Mi
nodeSelector: {}
tolerations: []
affinity: {}
# values to build and deploy static sites
gitCloneUrl: https://github.com/gimlet-io/hugo-site.git
buildImage: bitnami/git # the image must have git installed
buildTag: latest
buildScript: |
# !/usr/bin/env bash
# pre -reqs
apt-get update && apt-get install -y wget
# Setting up Hugo
wget https://github.com/gohugoio/hugo/releases/download/v0.111.3/hugo_0.111.3_Linux-64bit.tar.gz &&
tar -xzf hugo_0.111.3_Linux-64bit.tar.gz &&
chmod +x hugo
./hugo
builtAssets: public/
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.
+365 -67
View File
@@ -2,7 +2,147 @@ apiVersion: v1
entries:
cron-job:
- apiVersion: v2
created: "2022-02-11T12:09:50.286431657Z"
created: "2023-03-24T10:18:41.862777659Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: d87617be659d439d5c5fabc45cc9a8277cb86b97b99118ae1d9d05c74e807e5f
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.44.0.tgz
version: 0.44.0
- apiVersion: v2
created: "2023-03-24T10:18:41.862219863Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: 66e0c493901d433dc9db3b186c7fbae7018cd2dc0ddc7cab70a146496c706601
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.43.0.tgz
version: 0.43.0
- apiVersion: v2
created: "2023-03-24T10:18:41.861656968Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: abf83fbf901cd5bf40a3875eb3ed3490ef7ad7535bd07a797fb1cfb87ba7ad4d
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.42.0.tgz
version: 0.42.0
- apiVersion: v2
created: "2023-03-24T10:18:41.861049173Z"
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: dafa5373aa5e5153fa6be65a3d09b1ad6db2316f76889b4168fe81d3ed38484b
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.41.0.tgz
version: 0.41.0
- apiVersion: v2
created: "2023-03-24T10:18:41.860463777Z"
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: 13750b39f8fecf72bd7a94bffbc6700e2c10df73527d7f8878cc7adbe0e86dbf
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.40.0.tgz
version: 0.40.0
- apiVersion: v2
created: "2023-03-24T10:18:41.859020189Z"
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: 6fb6e912f104fddced69577eae37b884496d6d3ca469adb3cf9c21a119c1f5a2
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.39.0.tgz
version: 0.39.0
- apiVersion: v2
created: "2023-03-24T10:18:41.857972597Z"
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: 677111225bcba92cf711236c19ff7c41e203de2074c054a036275d55c99ede03
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.38.0.tgz
version: 0.38.0
- apiVersion: v2
created: "2023-03-24T10:18:41.857453201Z"
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: 0b4e969d361df6daafe5d267c1f2ff4c1aede3423c18255eaa2a489600dd31f9
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.37.0.tgz
version: 0.37.0
- apiVersion: v2
created: "2023-03-24T10:18:41.856887706Z"
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: 938ddcad76bc85b54870129bb042c6b5faab5e60f23fe79ac22fe9ea58686e03
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.36.0.tgz
version: 0.36.0
- apiVersion: v2
created: "2023-03-24T10:18:41.855966013Z"
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: 9e864df616e71481dadadc9e39c08ae8d5dcc47ebc3e77158a81044dc4027d6c
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.35.0.tgz
version: 0.35.0
- apiVersion: v2
created: "2023-03-24T10:18:41.855436217Z"
dependencies:
- name: common
repository: file://../common
@@ -16,7 +156,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.34.0.tgz
version: 0.34.0
- apiVersion: v2
created: "2022-02-11T12:09:50.285787452Z"
created: "2023-03-24T10:18:41.854880722Z"
dependencies:
- name: common
repository: file://../common
@@ -30,7 +170,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.33.0.tgz
version: 0.33.0
- apiVersion: v2
created: "2022-02-11T12:09:50.285151548Z"
created: "2023-03-24T10:18:41.854331526Z"
dependencies:
- name: common
repository: file://../common
@@ -44,7 +184,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.32.0.tgz
version: 0.32.0
- apiVersion: v2
created: "2022-02-11T12:09:50.284512543Z"
created: "2023-03-24T10:18:41.85379843Z"
dependencies:
- name: common
repository: file://../common
@@ -58,7 +198,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.2.2.tgz
version: 0.2.2
- apiVersion: v2
created: "2022-02-11T12:09:50.283810639Z"
created: "2023-03-24T10:18:41.853213135Z"
dependencies:
- name: common
repository: file://../common
@@ -72,7 +212,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.2.1.tgz
version: 0.2.1
- apiVersion: v2
created: "2022-02-11T12:09:50.283138634Z"
created: "2023-03-24T10:18:41.852642239Z"
dependencies:
- name: common
repository: file://../common
@@ -86,7 +226,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2022-02-11T12:09:50.282150627Z"
created: "2023-03-24T10:18:41.852077044Z"
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
@@ -96,7 +236,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.1.2.tgz
version: 0.1.2
- apiVersion: v2
created: "2022-02-11T12:09:50.281764824Z"
created: "2023-03-24T10:18:41.851800446Z"
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
@@ -106,7 +246,7 @@ entries:
- https://chart.onechart.dev/cron-job-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2022-02-11T12:09:50.281362622Z"
created: "2023-03-24T10:18:41.851507848Z"
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
@@ -117,16 +257,34 @@ entries:
version: 0.1.0
namespaces:
- apiVersion: v2
created: "2022-02-11T12:09:50.287121761Z"
created: "2023-03-24T10:18:41.86386185Z"
description: Chart to create namespaces and their defaults
digest: 866ea676d08159e28e4a4569c66b69a7af1133f6374f385e53743c9c9e955442
digest: 593a8ba40143f4db3e5ab266d7d108cc0859468d3ea4fedf9598cde743da39fd
name: namespaces
type: application
urls:
- https://chart.onechart.dev/namespaces-0.3.0.tgz
version: 0.3.0
- apiVersion: v2
created: "2023-03-24T10:18:41.863682752Z"
description: Chart to create namespaces and their defaults
digest: a8e28dab9dc1a0044e75fbf8dd6d89c760c6fe9caa76bf16076cf5ecb311e808
name: namespaces
type: application
urls:
- https://chart.onechart.dev/namespaces-0.2.1.tgz
version: 0.2.1
- apiVersion: v2
created: "2023-03-24T10:18:41.863335655Z"
description: Chart to create namespaces and their defaults
digest: 9539bfd2fde6d8f2b36ffec99c8a3a3eb7887462e98ee740b0ae0ea2b16b96b6
name: namespaces
type: application
urls:
- https://chart.onechart.dev/namespaces-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2022-02-11T12:09:50.286675358Z"
created: "2023-03-24T10:18:41.862989557Z"
description: Chart to create namespaces and their defaults
digest: 88b06d78a9d1bda6f2ee15b1fad7f25399ac25c2320fb9a8dfa1a4fd14afdf6e
name: namespaces
@@ -136,7 +294,147 @@ entries:
version: 0.1.0
onechart:
- apiVersion: v2
created: "2022-02-11T12:09:50.316280161Z"
created: "2023-03-24T10:18:41.90555052Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: e84a1dde081eff22800ceec11aab3bc69b3fd16b39303f49ccff70c1c0570ee7
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.44.0.tgz
version: 0.44.0
- apiVersion: v2
created: "2023-03-24T10:18:41.903798934Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: 7a9a4fd45b9649090a1d15fd574dccfb36382bc98354e75e9034eb08efb4b2eb
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.43.0.tgz
version: 0.43.0
- apiVersion: v2
created: "2023-03-24T10:18:41.902481644Z"
dependencies:
- name: common
repository: file://../common
version: 0.2.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: 9db2ac0e9e4df53f6cb2731bccb168cec9c3f676ef80c8dcaa709012a63814a5
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.42.0.tgz
version: 0.42.0
- apiVersion: v2
created: "2023-03-24T10:18:41.901548352Z"
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: 79b8c435dd9736654f5023829223ebf3302a082db61f464cc4d2a5d631efe4b6
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.41.0.tgz
version: 0.41.0
- apiVersion: v2
created: "2023-03-24T10:18:41.900760358Z"
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: 18c7611d7591b10d5f68a4ca44b4fecbc8b1635797b86053fe23bc0d2b71166c
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.40.0.tgz
version: 0.40.0
- apiVersion: v2
created: "2023-03-24T10:18:41.899715266Z"
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: 99045bbe5babfa5be9f41de300f7044f690a1e0ae186ec19075c0485afd45b42
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.39.0.tgz
version: 0.39.0
- apiVersion: v2
created: "2023-03-24T10:18:41.898939472Z"
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: 7e05eaddc56a29c6b762b36a485592ddb32f4cf1684dda79dc8fe069c34a68f2
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.38.0.tgz
version: 0.38.0
- apiVersion: v2
created: "2023-03-24T10:18:41.898183678Z"
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: 8c79b4a9a53ce4b2d9bd5724b156fdeafa9f9604690c365592d4ddd87ce799d0
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.37.0.tgz
version: 0.37.0
- apiVersion: v2
created: "2023-03-24T10:18:41.897425184Z"
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: 3882c5dad80044c1fd854e06ee329167c9635354a5f2ba1c20bd683c0c12090f
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.36.0.tgz
version: 0.36.0
- apiVersion: v2
created: "2023-03-24T10:18:41.89664739Z"
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: "2023-03-24T10:18:41.895876997Z"
dependencies:
- name: common
repository: file://../common
@@ -150,7 +448,7 @@ entries:
- https://chart.onechart.dev/onechart-0.34.0.tgz
version: 0.34.0
- apiVersion: v2
created: "2022-02-11T12:09:50.315411155Z"
created: "2023-03-24T10:18:41.895092903Z"
dependencies:
- name: common
repository: file://../common
@@ -164,7 +462,7 @@ entries:
- https://chart.onechart.dev/onechart-0.33.0.tgz
version: 0.33.0
- apiVersion: v2
created: "2022-02-11T12:09:50.31460775Z"
created: "2023-03-24T10:18:41.89415991Z"
dependencies:
- name: common
repository: file://../common
@@ -178,7 +476,7 @@ entries:
- https://chart.onechart.dev/onechart-0.32.0.tgz
version: 0.32.0
- apiVersion: v2
created: "2022-02-11T12:09:50.31322944Z"
created: "2023-03-24T10:18:41.886846668Z"
dependencies:
- name: common
repository: file://../common
@@ -192,7 +490,7 @@ entries:
- https://chart.onechart.dev/onechart-0.31.0.tgz
version: 0.31.0
- apiVersion: v2
created: "2022-02-11T12:09:50.312020432Z"
created: "2023-03-24T10:18:41.886101374Z"
dependencies:
- name: common
repository: file://../common
@@ -206,7 +504,7 @@ entries:
- https://chart.onechart.dev/onechart-0.30.0.tgz
version: 0.30.0
- apiVersion: v2
created: "2022-02-11T12:09:50.309986918Z"
created: "2023-03-24T10:18:41.884636286Z"
dependencies:
- name: common
repository: file://../common
@@ -220,7 +518,7 @@ entries:
- https://chart.onechart.dev/onechart-0.29.0.tgz
version: 0.29.0
- apiVersion: v2
created: "2022-02-11T12:09:50.309200913Z"
created: "2023-03-24T10:18:41.883927991Z"
dependencies:
- name: common
repository: file://../common
@@ -234,7 +532,7 @@ entries:
- https://chart.onechart.dev/onechart-0.28.0.tgz
version: 0.28.0
- apiVersion: v2
created: "2022-02-11T12:09:50.308397207Z"
created: "2023-03-24T10:18:41.883242097Z"
dependencies:
- name: common
repository: file://../common
@@ -248,7 +546,7 @@ entries:
- https://chart.onechart.dev/onechart-0.27.0.tgz
version: 0.27.0
- apiVersion: v2
created: "2022-02-11T12:09:50.307587602Z"
created: "2023-03-24T10:18:41.882549002Z"
dependencies:
- name: common
repository: file://../common
@@ -262,7 +560,7 @@ entries:
- https://chart.onechart.dev/onechart-0.27.0-rc3.tgz
version: 0.27.0-rc3
- apiVersion: v2
created: "2022-02-11T12:09:50.306831896Z"
created: "2023-03-24T10:18:41.881848808Z"
dependencies:
- name: common
repository: file://../common
@@ -276,7 +574,7 @@ entries:
- https://chart.onechart.dev/onechart-0.27.0-rc2.tgz
version: 0.27.0-rc2
- apiVersion: v2
created: "2022-02-11T12:09:50.306004191Z"
created: "2023-03-24T10:18:41.881101014Z"
dependencies:
- name: common
repository: file://../common
@@ -290,7 +588,7 @@ entries:
- https://chart.onechart.dev/onechart-0.27.0-rc1.tgz
version: 0.27.0-rc1
- apiVersion: v2
created: "2022-02-11T12:09:50.305139785Z"
created: "2023-03-24T10:18:41.880375719Z"
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
@@ -300,7 +598,7 @@ entries:
- https://chart.onechart.dev/onechart-0.26.0.tgz
version: 0.26.0
- apiVersion: v2
created: "2022-02-11T12:09:50.304554881Z"
created: "2023-03-24T10:18:41.879832324Z"
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
@@ -310,7 +608,7 @@ entries:
- https://chart.onechart.dev/onechart-0.25.0.tgz
version: 0.25.0
- apiVersion: v2
created: "2022-02-11T12:09:50.303949677Z"
created: "2023-03-24T10:18:41.879249228Z"
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
@@ -320,7 +618,7 @@ entries:
- https://chart.onechart.dev/onechart-0.24.1.tgz
version: 0.24.1
- apiVersion: v2
created: "2022-02-11T12:09:50.303315172Z"
created: "2023-03-24T10:18:41.878337936Z"
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
@@ -330,7 +628,7 @@ entries:
- https://chart.onechart.dev/onechart-0.24.0.tgz
version: 0.24.0
- apiVersion: v2
created: "2022-02-11T12:09:50.302457266Z"
created: "2023-03-24T10:18:41.877642441Z"
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
@@ -340,7 +638,7 @@ entries:
- https://chart.onechart.dev/onechart-0.23.0.tgz
version: 0.23.0
- apiVersion: v2
created: "2022-02-11T12:09:50.301707761Z"
created: "2023-03-24T10:18:41.876641349Z"
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
@@ -350,7 +648,7 @@ entries:
- https://chart.onechart.dev/onechart-0.22.0.tgz
version: 0.22.0
- apiVersion: v2
created: "2022-02-11T12:09:50.300542953Z"
created: "2023-03-24T10:18:41.876125853Z"
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
@@ -360,7 +658,7 @@ entries:
- https://chart.onechart.dev/onechart-0.21.0.tgz
version: 0.21.0
- apiVersion: v2
created: "2022-02-11T12:09:50.299886649Z"
created: "2023-03-24T10:18:41.875605757Z"
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
@@ -370,7 +668,7 @@ entries:
- https://chart.onechart.dev/onechart-0.20.0.tgz
version: 0.20.0
- apiVersion: v2
created: "2022-02-11T12:09:50.299047643Z"
created: "2023-03-24T10:18:41.874844063Z"
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
@@ -380,7 +678,7 @@ entries:
- https://chart.onechart.dev/onechart-0.19.0.tgz
version: 0.19.0
- apiVersion: v2
created: "2022-02-11T12:09:50.298477539Z"
created: "2023-03-24T10:18:41.874322067Z"
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
@@ -390,7 +688,7 @@ entries:
- https://chart.onechart.dev/onechart-0.18.0.tgz
version: 0.18.0
- apiVersion: v2
created: "2022-02-11T12:09:50.297875235Z"
created: "2023-03-24T10:18:41.873799472Z"
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
@@ -400,7 +698,7 @@ entries:
- https://chart.onechart.dev/onechart-0.17.0.tgz
version: 0.17.0
- apiVersion: v2
created: "2022-02-11T12:09:50.297279831Z"
created: "2023-03-24T10:18:41.873255876Z"
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
@@ -410,7 +708,7 @@ entries:
- https://chart.onechart.dev/onechart-0.16.0.tgz
version: 0.16.0
- apiVersion: v2
created: "2022-02-11T12:09:50.296693127Z"
created: "2023-03-24T10:18:41.87271658Z"
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
@@ -420,7 +718,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.3.tgz
version: 0.15.3
- apiVersion: v2
created: "2022-02-11T12:09:50.296114023Z"
created: "2023-03-24T10:18:41.872182284Z"
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
@@ -430,7 +728,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.2.tgz
version: 0.15.2
- apiVersion: v2
created: "2022-02-11T12:09:50.295484919Z"
created: "2023-03-24T10:18:41.871641589Z"
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
@@ -440,7 +738,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.1.tgz
version: 0.15.1
- apiVersion: v2
created: "2022-02-11T12:09:50.294863514Z"
created: "2023-03-24T10:18:41.871082393Z"
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
@@ -450,7 +748,7 @@ entries:
- https://chart.onechart.dev/onechart-0.15.0.tgz
version: 0.15.0
- apiVersion: v2
created: "2022-02-11T12:09:50.29428021Z"
created: "2023-03-24T10:18:41.870042101Z"
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
@@ -460,7 +758,7 @@ entries:
- https://chart.onechart.dev/onechart-0.14.0.tgz
version: 0.14.0
- apiVersion: v2
created: "2022-02-11T12:09:50.293709606Z"
created: "2023-03-24T10:18:41.868286215Z"
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
@@ -470,7 +768,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.2.tgz
version: 0.13.2
- apiVersion: v2
created: "2022-02-11T12:09:50.293129502Z"
created: "2023-03-24T10:18:41.867778919Z"
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
@@ -480,7 +778,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.1.tgz
version: 0.13.1
- apiVersion: v2
created: "2022-02-11T12:09:50.292154596Z"
created: "2023-03-24T10:18:41.867278023Z"
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
@@ -490,7 +788,7 @@ entries:
- https://chart.onechart.dev/onechart-0.13.0.tgz
version: 0.13.0
- apiVersion: v2
created: "2022-02-11T12:09:50.291460991Z"
created: "2023-03-24T10:18:41.866799327Z"
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
@@ -500,7 +798,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.2.tgz
version: 0.12.2
- apiVersion: v2
created: "2022-02-11T12:09:50.290503184Z"
created: "2023-03-24T10:18:41.866357731Z"
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
@@ -510,7 +808,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.1.tgz
version: 0.12.1
- apiVersion: v2
created: "2022-02-11T12:09:50.290018981Z"
created: "2023-03-24T10:18:41.865905834Z"
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
@@ -520,7 +818,7 @@ entries:
- https://chart.onechart.dev/onechart-0.12.0.tgz
version: 0.12.0
- apiVersion: v2
created: "2022-02-11T12:09:50.289509678Z"
created: "2023-03-24T10:18:41.865446038Z"
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
@@ -530,7 +828,7 @@ entries:
- https://chart.onechart.dev/onechart-0.11.0.tgz
version: 0.11.0
- apiVersion: v2
created: "2022-02-11T12:09:50.28845327Z"
created: "2023-03-24T10:18:41.864986841Z"
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
@@ -540,7 +838,7 @@ entries:
- https://chart.onechart.dev/onechart-0.10.0.tgz
version: 0.10.0
- apiVersion: v2
created: "2022-02-11T12:09:50.320302589Z"
created: "2023-03-24T10:18:41.908854094Z"
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
@@ -550,7 +848,7 @@ entries:
- https://chart.onechart.dev/onechart-0.9.0.tgz
version: 0.9.0
- apiVersion: v2
created: "2022-02-11T12:09:50.319800485Z"
created: "2023-03-24T10:18:41.908461097Z"
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
@@ -560,7 +858,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.2.tgz
version: 0.8.2
- apiVersion: v2
created: "2022-02-11T12:09:50.319393883Z"
created: "2023-03-24T10:18:41.9081115Z"
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
@@ -570,7 +868,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.1.tgz
version: 0.8.1
- apiVersion: v2
created: "2022-02-11T12:09:50.31899668Z"
created: "2023-03-24T10:18:41.907749702Z"
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
@@ -580,7 +878,7 @@ entries:
- https://chart.onechart.dev/onechart-0.8.0.tgz
version: 0.8.0
- apiVersion: v2
created: "2022-02-11T12:09:50.318590377Z"
created: "2023-03-24T10:18:41.907394105Z"
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
@@ -590,7 +888,7 @@ entries:
- https://chart.onechart.dev/onechart-0.7.1.tgz
version: 0.7.1
- apiVersion: v2
created: "2022-02-11T12:09:50.318203074Z"
created: "2023-03-24T10:18:41.907067808Z"
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
@@ -600,7 +898,7 @@ entries:
- https://chart.onechart.dev/onechart-0.7.0.tgz
version: 0.7.0
- apiVersion: v2
created: "2022-02-11T12:09:50.317833672Z"
created: "2023-03-24T10:18:41.90673341Z"
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
@@ -610,7 +908,7 @@ entries:
- https://chart.onechart.dev/onechart-0.6.1.tgz
version: 0.6.1
- apiVersion: v2
created: "2022-02-11T12:09:50.31752017Z"
created: "2023-03-24T10:18:41.906440013Z"
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
@@ -620,7 +918,7 @@ entries:
- https://chart.onechart.dev/onechart-0.6.0.tgz
version: 0.6.0
- apiVersion: v2
created: "2022-02-11T12:09:50.317199068Z"
created: "2023-03-24T10:18:41.906138915Z"
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
@@ -630,7 +928,7 @@ entries:
- https://chart.onechart.dev/onechart-0.5.1.tgz
version: 0.5.1
- apiVersion: v2
created: "2022-02-11T12:09:50.316893766Z"
created: "2023-03-24T10:18:41.905854617Z"
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
@@ -640,7 +938,7 @@ entries:
- https://chart.onechart.dev/onechart-0.5.0.tgz
version: 0.5.0
- apiVersion: v2
created: "2022-02-11T12:09:50.316590463Z"
created: "2023-03-24T10:18:41.899989664Z"
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
@@ -650,7 +948,7 @@ entries:
- https://chart.onechart.dev/onechart-0.4.0.tgz
version: 0.4.0
- apiVersion: v2
created: "2022-02-11T12:09:50.310832124Z"
created: "2023-03-24T10:18:41.88536218Z"
description: A generic Helm chart for your application deployments
digest: fbaf6139e0ef8ad9a87cc1e41a97c7d25fdcf7ea17fa6364952f1a851a87480a
name: onechart
@@ -659,7 +957,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.2.tgz
version: 0.3.2
- apiVersion: v2
created: "2022-02-11T12:09:50.310522622Z"
created: "2023-03-24T10:18:41.885116882Z"
description: A generic Helm chart for your application deployments
digest: bd6f5b1865ab9b05fc6925c163ab8045235bd2723dba31f09d5083d24322d1f8
name: onechart
@@ -668,7 +966,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.1.tgz
version: 0.3.1
- apiVersion: v2
created: "2022-02-11T12:09:50.31025532Z"
created: "2023-03-24T10:18:41.884879484Z"
description: A generic Helm chart for your application deployments
digest: c79cef21eceab948144a289298cdf1e20e77a0782a883d7d65f9e709ccbbc271
name: onechart
@@ -677,7 +975,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.0.tgz
version: 0.3.0
- apiVersion: v2
created: "2022-02-11T12:09:50.299322345Z"
created: "2023-03-24T10:18:41.875077861Z"
description: A generic Helm chart for your application deployments
digest: dd814ac5d08d5e6163a1b769df6803f5cb0f09d906045086dfcc5be522bb1ec3
name: onechart
@@ -686,7 +984,7 @@ entries:
- https://chart.onechart.dev/onechart-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2022-02-11T12:09:50.287988567Z"
created: "2023-03-24T10:18:41.864580045Z"
description: A generic Helm chart for your application deployments
digest: e46062df8053840cbfbba26c0a66a843a79f15a0b43a145ed019327513bd5098
name: onechart
@@ -695,7 +993,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.2.tgz
version: 0.1.2
- apiVersion: v2
created: "2022-02-11T12:09:50.287699365Z"
created: "2023-03-24T10:18:41.864350046Z"
description: A generic Helm chart for your application deployments
digest: a7bbc8b7dcc008e89156cd1830282b7d39c0592e82ccdcefb77a25a42eca2a3d
name: onechart
@@ -704,7 +1002,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2022-02-11T12:09:50.287404563Z"
created: "2023-03-24T10:18:41.864117548Z"
description: A generic Helm chart for your application deployments
digest: 1ed8c0645abdae6c950526e9c5410dc056847a11700dc7def5f1c55eb7de0cd4
name: onechart
@@ -712,4 +1010,4 @@ entries:
urls:
- https://chart.onechart.dev/onechart-0.1.0.tgz
version: 0.1.0
generated: "2022-02-11T12:09:50.280012312Z"
generated: "2023-03-24T10:18:41.851055952Z"
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.
+9
View File
@@ -7,3 +7,12 @@ gitSha: xyz
vars:
MY_VAR: "value"
volumes:
- name: testing
path: /deleteme
hostPath:
path: /deleteme
- name: empty
path: /deleteme2
emptyDir: true
+1 -1
View File
@@ -1,5 +1,5 @@
[[redirects]]
from = "/*"
to = "https://gimlet.io/onechart/getting-started"
to = "https://gimlet.io/docs/onechart-reference"
status = 301
force = true