Compare commits

...

71 Commits

Author SHA1 Message Date
Laszlo Fogas 269ab7e376 Using unique names for TLS secrets 2021-08-13 09:10:47 +02:00
Laszlo Fogas 324617b0de 0.27.0 coming after RCs 2021-08-13 08:46:49 +02:00
Github Action 6a897ff5a3 The next release version will be 0.28.0 2021-08-05 11:27:26 +00:00
Github Action 10205747f2 Publishing 0.27.0-rc3 to the Helm repository 2021-08-05 11:27:25 +00:00
Laszlo Fogas c56e2aa5b4 Fixing robustName helper 2021-08-05 13:26:49 +02:00
Github Action 167ce8cff5 The next release version will be 0.28.0 2021-08-05 10:26:05 +00:00
Github Action 539caf68a0 Publishing 0.27.0-rc2 to the Helm repository 2021-08-05 10:26:04 +00:00
Laszlo Fogas eec4f30c67 Added json schema and ui meta data to cronjob 2021-08-05 12:25:23 +02:00
Github Action 9609cc2c3a The next release version will be 0.28.0 2021-08-05 10:07:25 +00:00
Github Action 59a5bfde2f Publishing 0.27.0-rc1 to the Helm repository 2021-08-05 10:07:25 +00:00
Laszlo Fogas 98390f73c8 Merge pull request #27 from gimlet-io/schedule-support
Using common chart
2021-08-05 12:05:59 +02:00
Github Action 8417a0363d Publishing 0.27.0-rc1 to the Helm repository 2021-08-05 09:58:13 +00:00
Laszlo Fogas 5910080e17 Fixing release script to not fail on dependency charts 2021-08-05 11:57:18 +02:00
Laszlo Fogas 922111d2de Preparing for rc release 2021-08-05 11:52:28 +02:00
Laszlo Fogas 4352af0abc Moved var and secret support to common 2021-08-05 11:50:18 +02:00
Laszlo Fogas 164bfec8b3 Moved volume support to common 2021-08-05 11:50:18 +02:00
Laszlo Fogas d91040c0a0 Job constraints configurable 2021-08-05 11:50:18 +02:00
Laszlo Fogas 4942164b9a Testing of common chart 2021-08-05 11:50:17 +02:00
Github Action 1082767c59 The next release version will be 0.27.0 2021-08-02 06:50:06 +00:00
Github Action 74c16555dd Publishing 0.26.0 to the Helm repository 2021-08-02 06:50:02 +00:00
Laszlo Fogas ae6c219132 Supporting secretName without secretEnabled 2021-08-02 08:46:29 +02:00
Laszlo Fogas ade37a82c7 Merge pull request #25 from msbsh/fix/ingress-svc-port
fix: Makes use of svcPort within ingress, when defined;
2021-07-29 15:24:31 +02:00
Martin James b249805bf3 fix: Makes use of svcPort within ingress, when defined; 2021-07-27 18:22:05 +02:00
Github Action efd5d819f3 The next release version will be 0.26.0 2021-07-27 08:10:15 +00:00
Github Action b2700d990d Publishing 0.25.0 to the Helm repository 2021-07-27 08:10:13 +00:00
Laszlo Fogas d0d0b28c9a Deployment strategy is configurable; still having the single replica volume rule 2021-07-27 10:02:54 +02:00
Github Action 0a162de948 The next release version will be 0.25.0 2021-07-26 09:34:33 +00:00
Github Action 442c98f5d1 Publishing 0.24.1 to the Helm repository 2021-07-26 09:34:30 +00:00
Laszlo Fogas 73fd1235c2 Fixing duplicated annotation; added tests; prepped for bugfix release 2021-07-26 11:30:57 +02:00
Github Action c68e979ba0 The next release version will be 0.25.0 2021-07-19 14:27:45 +00:00
Github Action 96e8f0db60 Publishing 0.24.0 to the Helm repository 2021-07-19 14:27:42 +00:00
Laszlo Fogas 46cd92059c Merge pull request #24 from gimlet-io/gimlet-taxonomy
Set Gimlet service taxonomy if git data is set
2021-07-19 16:26:02 +02:00
Laszlo Fogas 0000ad9f4b Set Gimlet service taxonomy if git data is set 2021-07-19 16:23:20 +02:00
Github Action 7642eb3dc7 The next release version will be 0.24.0 2021-07-19 13:08:48 +00:00
Github Action 3326cd3c38 Publishing 0.23.0 to the Helm repository 2021-07-19 13:08:46 +00:00
Laszlo Fogas 5ac5e6bc03 Service account 2021-07-19 14:42:29 +02:00
Github Action 54946f8caf The next release version will be 0.23.0 2021-06-22 12:52:35 +00:00
Github Action addc69413c Publishing 0.22.0 to the Helm repository 2021-06-22 12:52:32 +00:00
Laszlo Fogas 50b0f9cf89 Recreate deployment if volumes used with a single replica to avoid stuck pods 2021-06-22 14:46:40 +02:00
Github Action bc933d1668 The next release version will be 0.22.0 2021-05-12 11:18:16 +00:00
Github Action 8c124da61a Publishing 0.21.0 to the Helm repository 2021-05-12 11:18:14 +00:00
Laszlo Fogas b6cdead8e6 Merge pull request #21 from gimlet-io/multiple-ingresses
Supporting multiple ingresses
2021-05-12 13:13:37 +02:00
Laszlo Fogas eb78ab24e6 Support for ingress and ingresses 2021-05-12 13:03:10 +02:00
Laszlo Fogas e6b527aae6 Removing deprecated apiVersion 2021-05-12 11:04:53 +02:00
Github Action 7ece4e42dd The next release version will be 0.21.0 2021-04-28 08:36:28 +00:00
Github Action c2d6250a91 Publishing 0.20.0 to the Helm repository 2021-04-28 08:36:26 +00:00
Laszlo Fogas bc74e6f201 Merge pull request #19 from gimlet-io/lb-and-sticky-sessions
LoadBalancer svc type and sticky sessions
2021-04-28 10:30:22 +02:00
Laszlo Fogas 27698eda01 LoadBalancer svc type and sticky sessions 2021-04-28 10:29:50 +02:00
Laszlo Fogas b11b62a970 Merge pull request #18 from laszlocph/ports-support
Supporting a list of ports
2021-04-28 10:25:34 +02:00
Laszlo Fogas 5012c4ae5d Supporting a list of ports 2021-04-28 10:21:53 +02:00
Laszlo Fogas e539810c80 Merge pull request #17 from laszlocph/nodeport-support
nodePort support
2021-04-28 10:11:42 +02:00
Laszlo Fogas a274eacba2 nodePort support 2021-04-28 10:11:14 +02:00
Laszlo Fogas e28ed88e2f Merge pull request #16 from gimlet-io/svcport-mapping
Ability to have different container and svcPort
2021-04-28 10:08:11 +02:00
Laszlo Fogas 1ecdba097b Ability to have different container and svcPort 2021-04-28 10:07:10 +02:00
Laszlo Fogas 6ee68880ae Merge pull request #15 from laszlocph/generic-sidecar
Generic sidecar support
2021-04-28 09:55:45 +02:00
Laszlo Fogas 28918e3359 Debug sidecar test 2021-04-28 09:55:29 +02:00
Laszlo Fogas ee15631900 Generic sidecar support 2021-04-28 09:47:00 +02:00
Github Action 6acf4ec41f The next release version will be 0.20.0 2021-04-21 11:19:55 +00:00
Github Action 155d821738 Publishing 0.19.0 to the Helm repository 2021-04-21 11:19:52 +00:00
Laszlo Fogas bc7d3d18ed Fixing dev branch.. 2021-04-21 13:18:02 +02:00
Laszlo Fogas 3b41c38dba Fix: Trailing new line was removed, multiple resources were not created, but one 2021-04-21 13:14:02 +02:00
Laszlo Fogas 1cbdca4eab Simplifying 2021-04-17 18:30:25 +02:00
Laszlo Fogas b929abd3f8 Merge pull request #13 from gimlet-io/release-automation
Release automation
2021-04-17 18:28:39 +02:00
Laszlo Fogas c51bc8745e Note on automation 2021-04-17 18:26:49 +02:00
Laszlo Fogas 63b56ae029 Merge remote-tracking branch 'origin/master' into release-automation
* origin/master:
  Never cache make runs
  Build instructions - WIP
2021-04-17 18:24:49 +02:00
Laszlo Fogas a2c4d5e66c Merge pull request #14 from gimlet-io/dev-instructions
Build instructions
2021-04-17 18:24:32 +02:00
Laszlo Fogas b30f3885be Merge remote-tracking branch 'origin/master' into dev-instructions
* origin/master:
  Never cache make runs
  Issue #9 - Open Source Guidelines for Gimlet
2021-04-17 18:24:16 +02:00
Laszlo Fogas d436fe1645 Automating releases 2021-04-17 14:25:49 +02:00
Laszlo Fogas 39901f5ca4 Merge pull request #12 from gimlet-io/phony
Never cache make runs
2021-04-14 16:29:04 +02:00
Laszlo Fogas 6d31bcd7a0 Never cache make runs 2021-04-14 12:12:41 +02:00
Laszlo Fogas c439bfd2ad Build instructions - WIP 2021-04-09 11:21:16 +02:00
78 changed files with 1488 additions and 307 deletions
+94
View File
@@ -0,0 +1,94 @@
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Extract tag version
id: versioning
run: |
tag=${GITHUB_REF/refs\/tags\//}
tag=${tag#v}
echo ::set-output name=tag_version::$tag
- name: Extract chart version
id: chart_version
run: |
CHART_VERSION=$(cat charts/onechart/Chart.yaml | grep ^version:)
CHART_VERSION=${CHART_VERSION#version: }
echo $CHART_VERSION
echo ::set-output name=chart_version::$CHART_VERSION
- name: Ensure tag and chart version matches
run: |
echo "Run ${{ steps.versioning.outputs.VERSION }}"
echo "${{ steps.chart_version.outputs.CHART_VERSION }}"
echo "$TAG_VERSION"
echo "$CHART_VERSION"
if [ "$TAG_VERSION" != "$CHART_VERSION" ]
then
echo "Tag version does not match chart version"
exit 1
fi
env:
TAG_VERSION: ${{ steps.versioning.outputs.tag_version }}
CHART_VERSION: ${{ steps.chart_version.outputs.chart_version }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Publishing to the Helm repository
run: |
git config --global user.email "action@github.com"
git config --global user.name "Github Action"
git checkout master
make package
git add .
git commit -m "Publishing $TAG_VERSION to the Helm repository"
git push origin master
env:
TAG_VERSION: ${{ steps.versioning.outputs.tag_version }}
- name: Preparing the next release version
run: |
git config --global user.email "action@github.com"
git config --global user.name "Github Action"
git checkout master
without_major_version=${CHART_VERSION#*.}
without_patch_version=${without_major_version%.*}
increased_minor_version=$(($without_patch_version + 1))
major_version=${CHART_VERSION%%.*}
increased_version="$major_version.$increased_minor_version.0"
echo "The new version will be $increased_version"
sed -i "s/version: $CHART_VERSION/version: $increased_version/" charts/onechart/Chart.yaml
git status
git add .
git commit -m "The next release version will be $increased_version"
git push origin master
env:
CHART_VERSION: ${{ steps.chart_version.outputs.chart_version }}
+11
View File
@@ -1,4 +1,6 @@
.PHONY: all lint kubeval test package debug debug-ui
all: lint kubeval test package
lint:
@@ -26,8 +28,12 @@ kubeval:
find manifests/ -name '*.yaml' | xargs kubeval --ignore-missing-schemas -v 1.18.0
test:
helm dependency update charts/onechart
helm unittest charts/onechart
helm dependency update charts/cron-job
helm unittest charts/cron-job
helm unittest charts/namespaces
package:
@@ -43,8 +49,13 @@ package:
helm repo index docs --url https://chart.onechart.dev
debug:
helm dependency update charts/onechart
helm template charts/onechart/ -f values.yaml --debug
debug-cron-job:
helm dependency update charts/cron-job
helm template charts/cron-job/ -f values-cron-job.yaml --debug
debug-ui:
#gimlet chart configure -s charts/onechart/values.schema.json -u charts/onechart/helm-ui.json onechart/onechart
/home/laszlo/projects/gimlet-cli/build/gimlet chart configure -s charts/onechart/values.schema.json -u charts/onechart/helm-ui.json onechart/onechart
+23 -5
View File
@@ -36,21 +36,39 @@ See all [Examples](/examples/deploying-an-image)
Thank you for your interest in contributing to the Gimlet project.
Below are some of the guidelines and best practices for contributing to this repository:
Below are some guidelines and best practices for contributing to this repository:
### Issues
If you are running a fork of OneChart and would like to upstream a feature, please open a pull request for it.
### New Features
If you are planning to add a new feature to OneChart, please open an issue for it first. Helm charts are prone to having too many features, and OneChart want to keep the supported use-cases in-check. Proposed features have to be generally applicable, targeting newcomers to the Kubernetes ecosystem.
### New Features / Components
If you have any ideas on new features or want to improve the existing features, you can suggest it by opening a [GitHub issue](https://github.com/gimlet-io/onechart/issues/new). Make sure to include detailed information about the feature requests, use cases, and any other information that could be helpful.
### Pull Request Process
* Fork the repository.
* Create a new branch and make your changes.
* Open a pull request with detailed commit message and reference issue number if applicable.
* A maintainer will review your pull request, and help you throughout the process.
## Development
Development of OneChart does not differ from developing a regular Helm chart.
The source for OneChart is under `charts/onechart` where you can locate the `Chart.yaml`, `values.yaml` and the templates.
We write unit tests for our helm charts. Pull requests are only accepted with proper test coverage.
The tests are located under `charts/onechart/test` and use the https://github.com/DataDog/helm-unittest.git Helm plugin to run the tests.
For installation, refer to the CI workflow at `.github/workflows/build.yaml`.
## Release process
`make all` to test and package the Helm chart.
The chart archives are put under `docs/` together with the Helm repository manifest (index.yaml)
It is then served with Github Pages on https://chart.onechart.dev
Github Actions is used to automate the make calls on git tag events.
+23
View File
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
+18
View File
@@ -0,0 +1,18 @@
apiVersion: v2
name: common
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: library
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
+15
View File
@@ -0,0 +1,15 @@
{{- define "common.configmap.tpl" -}}
{{- if .Values.vars }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "common.robustName" .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.vars }}
{{ $key }}: {{ $val | quote }}
{{- end }}
{{- end }}
{{- end -}}
+21
View File
@@ -0,0 +1,21 @@
{{- define "common.envFromRef.tpl" -}}
{{- if or (or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets) .Values.secretName }}
envFrom: &envFrom
{{- if .Values.vars }}
- configMapRef:
name: {{ template "common.robustName" .Release.Name }}
{{- end }}
{{- if .Values.secretEnabled }}
- secretRef:
name: {{ include "common.robustName" $.Release.Name }}
{{- end }}
{{- if .Values.secretName }}
- secretRef:
name: {{ .Values.secretName }}
{{- end }}
{{- if .Values.sealedSecrets }}
- secretRef:
name: {{ template "common.robustName" .Release.Name }}
{{- end }}
{{- end }}
{{- end }}
@@ -1,3 +1,4 @@
{{- define "common.fileSecret.tpl" -}}
{{- range .Values.fileSecrets }}
---
kind: Secret
@@ -11,3 +12,4 @@ data:
{{ $key }}: {{ $val | b64enc }}
{{- end }}
{{- end }}
{{- end -}}
+10
View File
@@ -0,0 +1,10 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Create robustName that can be used as Kubernetes resource name, and as subdomain as well
\w Latin letters, digits, underscore '_' .
\W all but \w .
*/}}
{{- define "common.robustName" -}}
{{ regexReplaceAll "[^0-9A-Za-z_\\.]+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" | trimPrefix "-" }}
{{- end }}
+18
View File
@@ -0,0 +1,18 @@
{{- define "common.pvc.tpl" -}}
{{- range .Values.volumes }}
{{- $robustName := include "common.robustName" $.Release.Name }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ printf "%s-%s" $robustName .name }}
namespace: {{ $.Release.Namespace }}
spec:
accessModes:
- {{ .accessMode | default "ReadWriteOnce" }}
storageClassName: {{ .storageClass | default "local-path" }}
resources:
requests:
storage: {{ .size | default "1Gi" }}
{{- end }}
{{- end -}}
@@ -1,5 +1,6 @@
{{- define "common.sealedFileSecret.tpl" -}}
{{- range .Values.sealedFileSecrets }}
{{- $robustName := include "robustName" $.Release.Name -}}
{{- $robustName := include "common.robustName" $.Release.Name }}
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
@@ -22,3 +23,4 @@ spec:
name: {{ printf "%s-%s" $.Release.Name .name }}
namespace: {{ $.Release.Namespace }}
{{- end }}
{{- end -}}
@@ -1,8 +1,9 @@
{{- if .Values.sealedSecrets }}
{{- define "common.sealedSecret.tpl" -}}
{{- if .Values.sealedSecrets }}
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: {{ template "robustName" .Release.Name }}
name: {{ template "common.robustName" .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
@@ -15,6 +16,7 @@ spec:
{{- end }}
template:
metadata:
name: {{ template "robustName" .Release.Name }}
name: {{ template "common.robustName" .Release.Name }}
namespace: {{ .Release.Namespace }}
{{- end }}
{{- end }}
{{- end -}}
@@ -0,0 +1,19 @@
{{- define "common.volumeMountsRef.tpl" -}}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
volumeMounts: &volumeMounts
{{- range .Values.volumes }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
readOnly: true
{{- end }}
{{- range .Values.fileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
readOnly: true
{{- end }}
{{- end }}
{{- end }}
+20
View File
@@ -0,0 +1,20 @@
{{- define "common.volumesRef.tpl" -}}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
volumes:
{{- range .Values.volumes }}
- name: {{ .name }}
persistentVolumeClaim:
claimName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
secret:
secretName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- range .Values.fileSecrets }}
- name: {{ .name }}
secret:
secretName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- end }}
{{- end -}}
+6
View File
@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../common
version: 0.1.0
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
generated: "2021-08-05T10:18:17.533366128+02:00"
+6 -1
View File
@@ -15,4 +15,9 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.2
version: 0.2.2
dependencies:
- name: common
version: 0.1.0
repository: file://../common
Binary file not shown.
+71
View File
@@ -0,0 +1,71 @@
[
{
"schemaIDs": [
"#/properties/image",
"#/properties/shell",
"#/properties/command"
],
"uiSchema": {
"#/properties/replicas": {
"ui:widget": "range"
}
},
"metaData": {
"name": "Basics",
"icon": "M17 8l4 4m0 0l-4 4m4-4H3"
}
},
{
"schemaIDs": [
"#/properties/resources"
],
"uiSchema": {
},
"metaData": {
"name": "Resources",
"icon": "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"
}
},
{
"schemaIDs": [
"#/properties/vars"
],
"uiSchema": {
"#/properties/vars": {
"additionalProperties": {
"type": "string"
}
}
},
"metaData": {
"name": "Environment Variables",
"icon": "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
}
},
{
"schemaIDs": [
"#/properties/sealedSecrets"
],
"uiSchema": {
"#/properties/sealedSecrets": {
"additionalProperties": {
"type": "string"
}
}
},
"metaData": {
"name": "Sealed Secrets",
"icon": "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
}
},
{
"schemaIDs": [
"#/properties/volumes"
],
"uiSchema": {},
"metaData": {
"name": "Volumes",
"icon": "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"
}
}
]
+1 -13
View File
@@ -1,13 +1 @@
{{- if .Values.vars }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.vars }}
{{ $key }}: {{ $val | quote }}
{{- end }}
{{- end }}
{{- include "common.configmap.tpl" . -}}
+7 -25
View File
@@ -7,10 +7,9 @@ metadata:
{{- include "helm-chart.labels" . | nindent 4 }}
spec:
schedule: {{ .Values.schedule | quote }}
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
startingDeadlineSeconds: 120
{{- with .Values.constraints }}
{{- toYaml . | nindent 2 }}
{{- end }}
jobTemplate:
spec:
template:
@@ -30,29 +29,12 @@ spec:
- {{ .Values.shell }}
- -c
- {{ .Values.command | quote }}
envFrom:
{{- if .Values.vars }}
- configMapRef:
name: {{ .Release.Name }}
{{- end }}
{{- if .Values.secret.enabled }}
- secretRef:
name: {{ .Release.Name }}
{{- end }}
volumeMounts:
{{- range .Values.volumes }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- end }}
{{- include "common.envFromRef.tpl" . | nindent 14 }}
{{- include "common.volumeMountsRef.tpl" . | nindent 14 }}
resources:
{{- toYaml .Values.resources | nindent 16 }}
volumes:
{{- range .Values.volumes }}
- name: {{ .name }}
persistentVolumeClaim:
claimName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{ with .Values.nodeSelector }}
{{- include "common.volumesRef.tpl" . | nindent 10 }}
{{ with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | nindent 8 }}
{{- end }}
@@ -0,0 +1 @@
{{- include "common.fileSecret.tpl" . -}}
+1 -15
View File
@@ -1,15 +1 @@
{{- range .Values.volumes }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ printf "%s-%s" $.Release.Name .name }}
namespace: {{ $.Release.Namespace }}
spec:
accessModes:
- {{ .accessMode | default "ReadWriteOnce" }}
storageClassName: {{ .storageClass | default "local-path" }}
resources:
requests:
storage: {{ .size | default "1Gi" }}
{{- end }}
{{- include "common.pvc.tpl" . -}}
@@ -0,0 +1 @@
{{- include "common.sealedFileSecret.tpl" . -}}
@@ -0,0 +1 @@
{{- include "common.sealedSecret.tpl" . -}}
@@ -13,7 +13,7 @@ tests:
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
content:
configMapRef:
name: RELEASE-NAME
name: release-name
- it: Should not reference configmap if vars are not set
asserts:
- isNull:
@@ -0,0 +1,17 @@
suite: test cron job
templates:
- cronJob.yaml
tests:
- it: Should have default constraints
asserts:
- equal:
path: spec.successfulJobsHistoryLimit
value: 1
- it: Should constraints be configurable
set:
constraints:
successfulJobsHistoryLimit: 2
asserts:
- equal:
path: spec.successfulJobsHistoryLimit
value: 2
@@ -0,0 +1,28 @@
suite: test deployment
templates:
- cronJob.yaml
tests:
- it: Should mount volume
set: &values
sealedFileSecrets:
- name: google-account-key
path: /google-account-key
filesToMount:
- name: key.json
sourcePath: my-google-acoount-key.json
asserts:
- equal:
path: spec.jobTemplate.spec.template.spec.containers[0].volumeMounts
value:
- name: google-account-key
mountPath: /google-account-key
readOnly: true
- it: Should reference volume
set: *values
asserts:
- equal:
path: spec.jobTemplate.spec.template.spec.volumes
value:
- name: google-account-key
secret:
secretName: RELEASE-NAME-google-account-key
@@ -5,16 +5,16 @@ templates:
tests:
- it: Should reference secret if secret is enabled
set:
secret.enabled: true
secretEnabled: true
asserts:
- contains:
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
content:
secretRef:
name: RELEASE-NAME
name: release-name
- it: Should not reference secret if secret is disabled
set:
secret.enabled: false
secretEnabled: false
asserts:
- isNull:
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
+316
View File
@@ -0,0 +1,316 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "http://example.com/example.json",
"type": "object",
"title": "The root schema",
"description": "The root schema comprises the entire JSON document.",
"default": {},
"required": [],
"properties": {
"image": {
"$id": "#/properties/image",
"type": "object",
"title": "Image",
"description": "The image to deploy",
"default": {},
"examples": [
{
"repository": "nginx",
"tag": "latest"
}
],
"required": [
"repository",
"tag"
],
"properties": {
"repository": {
"$id": "#/properties/image/properties/repository",
"type": "string",
"title": "Repository",
"description": "",
"default": "nginx",
"examples": [
"nginx"
]
},
"tag": {
"$id": "#/properties/image/properties/tag",
"type": "string",
"title": "Tag",
"description": "",
"default": "1.19.3",
"examples": [
"latest"
]
}
}
},
"podAnnotations": {
"$id": "#/properties/podAnnotations",
"type": "object",
"title": "The podAnnotations schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{}
],
"required": [],
"additionalProperties": true
},
"resources": {
"$id": "#/properties/resources",
"type": "object",
"title": "",
"description": "",
"default": {},
"examples": [
{
"requests": {
"cpu": "200m",
"memory": "200mi"
},
"limits": {
"cpu": "200m",
"memory": "200mi"
}
}
],
"required": [],
"properties": {
"requests": {
"$id": "#/properties/resources/properties/requests",
"type": "object",
"title": "Requests",
"description": "The typical resources your app uses",
"default": {},
"examples": [
{
"cpu": "200m",
"memory": "200mi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/resources/properties/requests/properties/cpu",
"type": "string",
"title": "CPU",
"description": "",
"default": "200m",
"examples": [
"200m"
]
},
"memory": {
"$id": "#/properties/resources/properties/requests/properties/memory",
"type": "string",
"title": "Memory",
"description": "",
"default": "200Mi",
"examples": [
"200mi"
]
}
}
},
"limits": {
"$id": "#/properties/resources/properties/limits",
"type": "object",
"title": "Limits",
"description": "The maximum resources your app may use",
"default": {},
"examples": [
{
"cpu": "200m",
"memory": "200mi"
}
],
"required": [
"cpu",
"memory"
],
"properties": {
"cpu": {
"$id": "#/properties/resources/properties/limits/properties/cpu",
"type": "string",
"title": "CPU",
"description": "The hard ceiling for the app's CPU usage. The app will be throttled to this limit. 1000m or 1000 CPU shares = 1 CPU core",
"default": "200m",
"examples": [
"200m"
]
},
"memory": {
"$id": "#/properties/resources/properties/limits/properties/memory",
"type": "string",
"title": "Memory",
"description": "The hard ceiling for the app's memory usage. The app will be RESTARTED if it reaches this limit",
"default": "200Mi",
"examples": [
"200mi"
]
}
}
}
}
},
"nodeSelector": {
"$id": "#/properties/nodeSelector",
"type": "object",
"title": "The nodeSelector schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{}
],
"required": [],
"additionalProperties": true
},
"tolerations": {
"$id": "#/properties/tolerations",
"type": "array",
"title": "The tolerations schema",
"description": "An explanation about the purpose of this instance.",
"default": [],
"examples": [
[]
],
"additionalItems": true,
"items": {
"$id": "#/properties/tolerations/items"
}
},
"affinity": {
"$id": "#/properties/affinity",
"type": "object",
"title": "The affinity schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{}
],
"required": [],
"additionalProperties": true
},
"secret": {
"$id": "#/properties/secret",
"type": "object",
"title": "The secret schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"enabled": false
}
],
"required": [
"enabled"
],
"properties": {
"enabled": {
"$id": "#/properties/secret/properties/enabled",
"type": "boolean",
"title": "The enabled schema",
"description": "An explanation about the purpose of this instance.",
"default": false,
"examples": [
false
]
}
},
"additionalProperties": true
},
"shell": {
"$id": "#/properties/shell",
"type": "string",
"title": "Shell",
"description": "The shell to use",
"default": "/bin/sh"
},
"command": {
"$id": "#/properties/command",
"type": "string",
"title": "Command",
"description": "The command to run in the cronjob",
"default": "echo \"I'm alive\""
},
"vars": {
"$id": "#/properties/vars",
"type": "object",
"title": "Environment variables",
"description": "",
"default": {},
"examples": [
{
"VAR_1": "value 1",
"VAR_2": "value 2"
}
],
"required": [],
"properties": {},
"additionalProperties": true
},
"sealedSecrets": {
"$id": "#/properties/sealedSecrets",
"type": "object",
"title": "Sealed Secrets",
"description": "",
"default": {},
"examples": [
{
"VAR_1": "value 1",
"VAR_2": "value 2"
}
],
"required": [],
"properties": {},
"additionalProperties": true
},
"volumes": {
"$id": "#/properties/volumes",
"type": "array",
"title": "Volumes",
"default": [],
"additionalItems": true,
"items": {
"$id": "#/properties/volumes/items",
"type": "object",
"properties": {
"name": {
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
"type": "string",
"title": "Name",
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
"default": "data"
},
"path": {
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
"type": "string",
"title": "Path",
"description": "The mount path inside the container",
"default": "/data"
},
"size": {
"$id": "#/properties/volumes/items/anyOf/0/properties/size",
"type": "string",
"title": "Size",
"description": "",
"default": "10Gi"
},
"storageClass": {
"$id": "#/properties/volumes/items/anyOf/0/properties/storageClass",
"type": "string",
"title": "Storage Class",
"description": "The slug indicating the disk type in your cloud provider. `standard` on Google Cloud, `default` on Azure; `do-block-storage` on Digital Ocean",
"default": ""
}
}
}
}
},
"additionalProperties": true
}
+6
View File
@@ -27,3 +27,9 @@ affinity: {}
secret:
enabled: false
constraints:
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
startingDeadlineSeconds: 120
+6
View File
@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: file://../common
version: 0.1.0
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
generated: "2021-08-05T10:39:10.053810673+02:00"
+6 -1
View File
@@ -15,4 +15,9 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.18.0
version: 0.27.0
dependencies:
- name: common
version: 0.1.0
repository: file://../common
Binary file not shown.
+1 -13
View File
@@ -1,13 +1 @@
{{- if .Values.vars }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "robustName" .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.vars }}
{{ $key }}: {{ $val | quote }}
{{- end }}
{{- end }}
{{- include "common.configmap.tpl" . -}}
+39 -57
View File
@@ -5,11 +5,25 @@ metadata:
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
{{- if .Values.gitSha }}
annotations:
gimlet.io/git-sha: {{ .Values.gitSha }}
{{- end }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
{{- include "helm-chart.selectorLabels" . | nindent 6 }}
{{- $singleReplica := eq (.Values.replicas | int64) 1 }}
{{- $strategyNotDefined := not .Values.strategy }}
{{- if and (and .Values.volumes $singleReplica) $strategyNotDefined}}
strategy:
type: Recreate
{{- end }}
{{- if .Values.strategy }}
strategy:
type: {{ .Values.strategy }}
{{- end }}
template:
metadata:
annotations:
@@ -17,6 +31,12 @@ spec:
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.gitSha }}
gimlet.io/git-sha: {{ .Values.gitSha }}
{{- end }}
{{- if .Values.gitRepository }}
gimlet.io/git-repository: {{ .Values.gitRepository }}
{{- end }}
labels:
{{- include "helm-chart.selectorLabels" . | nindent 8 }}
spec:
@@ -26,6 +46,9 @@ spec:
{{- end }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.serviceAccount }}
serviceAccountName: {{ .Values.serviceAccount }}
{{- end }}
containers:
- name: {{ template "robustName" .Release.Name }}
securityContext: &securityContext
@@ -38,28 +61,18 @@ spec:
- -c
- {{ .Values.command | quote }}
{{- end }}
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
envFrom: &envFrom
{{- if .Values.vars }}
- configMapRef:
name: {{ template "robustName" .Release.Name }}
{{- end }}
{{- if .Values.secretEnabled }}
- secretRef:
name: {{ .Values.secretName | default (include "robustName" $.Release.Name) }}
{{- end }}
{{- if .Values.sealedSecrets }}
- secretRef:
name: {{ template "robustName" .Release.Name }}
{{- end }}
{{- end }}
{{- include "common.envFromRef.tpl" . | nindent 10 }}
ports:
{{- if not .Values.containerPortYaml }}
{{- if not .Values.ports }}
- name: http
containerPort: {{ .Values.containerPort }}
protocol: TCP
{{ else }}
{{- toYaml .Values.containerPortYaml | nindent 12 }}
{{- range .Values.ports }}
- name: {{ .name }}
containerPort: {{ .containerPort }}
protocol: TCP
{{- end }}
{{- end }}
{{- if .Values.probe.enabled }}
readinessProbe:
@@ -71,33 +84,19 @@ spec:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- end }}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
volumeMounts: &volumeMounts
{{- range .Values.volumes }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
readOnly: true
{{- end }}
{{- range .Values.fileSecrets }}
- name: {{ .name }}
mountPath: {{ .path }}
readOnly: true
{{- end }}
{{- end }}
{{- include "common.volumeMountsRef.tpl" . | nindent 10 }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- if .Values.debugSidecarEnabled }}
- name: {{ template "robustName" .Release.Name }}-debug
{{- if .Values.sidecar }}
- name: {{ template "robustName" .Release.Name }}-sidecar
securityContext: *securityContext
image: {{ .Values.debugSidecar.image }}
image: {{ .Values.sidecar.repository }}:{{ .Values.sidecar.tag }}
{{- if .Values.sidecar.command }}
command:
- {{ .Values.debugSidecar.shell }}
- {{ .Values.sidecar.shell }}
- -c
- {{ .Values.debugSidecar.command | quote }}
- {{ .Values.sidecar.command | quote }}
{{- end }}
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
envFrom: *envFrom
{{- end }}
@@ -105,24 +104,7 @@ spec:
volumeMounts: *volumeMounts
{{- end }}
{{- end }}
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
volumes:
{{- range .Values.volumes }}
- name: {{ .name }}
persistentVolumeClaim:
claimName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- range .Values.sealedFileSecrets }}
- name: {{ .name }}
secret:
secretName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- range .Values.fileSecrets }}
- name: {{ .name }}
secret:
secretName: {{ printf "%s-%s" $.Release.Name .name }}
{{- end }}
{{- end }}
{{- include "common.volumesRef.tpl" . | nindent 6 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
@@ -0,0 +1 @@
{{- include "common.fileSecret.tpl" . -}}
+36 -20
View File
@@ -1,34 +1,50 @@
{{- $labels := include "helm-chart.labels" . -}}
{{- with .Values.ingress -}}
{{- $robustName := include "robustName" $.Release.Name -}}
{{- if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{/* OneChart ingress snippet */}}
{{- define "onechart.ingress" }}
{{- $robustName := include "robustName" .root.Release.Name -}}
{{- $resourceName := $robustName -}}
{{- if .longName }}
{{- $resourceName = printf "%s-%s" $robustName (include "robustName" .ingress.host) -}}
{{- end }}
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ $robustName }}
namespace: {{ $.Release.Namespace }}
name: {{ $resourceName }}
namespace: {{ .root.Release.Namespace }}
labels:
{{- $labels | nindent 4 }}
{{- with .annotations }}
{{- include "helm-chart.labels" .root | nindent 4 }}
{{- if or (or .root.Values.gitSha .ingress.annotations) .root.Values.gitRepository }}
annotations:
{{- toYaml . | nindent 4 }}
{{- if .ingress.annotations }}
{{- toYaml .ingress.annotations | nindent 4 }}
{{- end }}
{{- if .root.Values.gitSha }}
gimlet.io/git-sha: {{ .root.Values.gitSha }}
{{- end }}
{{- if .root.Values.gitRepository }}
gimlet.io/git-repository: {{ .root.Values.gitRepository }}
{{- end }}
{{- end }}
spec:
{{- if default false .tlsEnabled }}
{{- if default false .ingress.tlsEnabled }}
tls:
- hosts:
- {{ template "robustName" .host | quote }}
secretName: {{ printf "tls-%s" $robustName }}
- {{ template "robustName" .ingress.host | quote }}
secretName: {{ printf "tls-%s" $resourceName }}
{{- end }}
rules:
- host: {{ template "robustName" .host | quote }}
- host: {{ template "robustName" .ingress.host | quote }}
http:
paths:
- backend:
serviceName: {{ template "robustName" $.Release.Name }}
servicePort: {{ $.Values.containerPort }}
- backend:
serviceName: {{ $robustName }}
servicePort: {{ if .root.Values.svcPort }}{{ .root.Values.svcPort }}{{ else }}{{ .root.Values.containerPort }}{{ end }}
{{- end }}
{{- with .Values.ingress }}
{{- template "onechart.ingress" (dict "root" $ "ingress" .) }}
{{- end }}
{{- range .Values.ingresses }}
{{template "onechart.ingress" (dict "root" $ "ingress" . "longName" true) }}
{{- end }}
+1 -16
View File
@@ -1,16 +1 @@
{{- range .Values.volumes }}
{{- $robustName := include "robustName" $.Release.Name -}}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ printf "%s-%s" $robustName .name }}
namespace: {{ $.Release.Namespace }}
spec:
accessModes:
- {{ .accessMode | default "ReadWriteOnce" }}
storageClassName: {{ .storageClass | default "local-path" }}
resources:
requests:
storage: {{ .size | default "1Gi" }}
{{- end }}
{{- include "common.pvc.tpl" . -}}
@@ -0,0 +1 @@
{{- include "common.sealedFileSecret.tpl" . -}}
@@ -0,0 +1 @@
{{- include "common.sealedSecret.tpl" . -}}
+32 -2
View File
@@ -5,12 +5,42 @@ metadata:
namespace: {{ .Release.Namespace }}
labels:
{{- include "helm-chart.labels" . | nindent 4 }}
{{- if or .Values.gitRepository .Values.gitSha }}
annotations:
{{- if .Values.gitRepository }}
gimlet.io/git-repository: {{ .Values.gitRepository }}
{{- end }}
{{- if .Values.gitSha }}
gimlet.io/git-sha: {{ .Values.gitSha }}
{{- end }}
{{- end }}
spec:
type: {{ if .Values.nodePortEnabled }}NodePort{{ else }}ClusterIP{{ end }}
type: {{ if .Values.nodePortEnabled }}NodePort{{ else if .Values.loadbalancerEnabled }}LoadBalancer{{ else }}ClusterIP{{ end }}
{{- if .Values.stickySessions }}
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10800
externalTrafficPolicy: Local
{{- end }}
ports:
- port: {{ .Values.containerPort }}
{{- if not .Values.ports }}
- port: {{ if .Values.svcPort }}{{ .Values.svcPort }}{{ else }}{{ .Values.containerPort }}{{ end }}
targetPort: http
protocol: TCP
name: http
{{- if .Values.nodePort }}
nodePort: {{ .Values.nodePort }}
{{- end }}
{{ else }}
{{- range .Values.ports }}
- name: {{ .name }}
port: {{ if .svcPort }}{{ .svcPort }}{{ else }}{{ .containerPort }}{{ end }}
{{- if .nodePort }}
nodePort: {{ .nodePort }}
{{- end }}
targetPort: {{ .name }}
protocol: TCP
{{- end }}
{{- end }}
selector:
{{- include "helm-chart.selectorLabels" . | nindent 4 }}
@@ -1,12 +0,0 @@
suite: test deployment
templates:
- deployment.yaml
- configmap.yaml
tests:
- it: Should add a debug sidecar
set:
debugSidecarEnabled: true
asserts:
- equal:
path: spec.template.spec.containers[1].image
value: debian:stable-slim
@@ -5,35 +5,26 @@ templates:
tests:
- it: Should set custom ports
set:
containerPortYaml:
- port: 21
targetPort: ftp
protocol: TCP
ports:
- containerPort: 21
name: ftp
- port: 3001
targetPort: passive-1
protocol: TCP
- containerPort: 3001
name: passive-1
- port: 3002
targetPort: passive-2
protocol: TCP
- containerPort: 3002
name: passive-2
asserts:
- equal:
path: spec.template.spec.containers[0].ports
value:
- port: 21
targetPort: ftp
- name: ftp
containerPort: 21
protocol: TCP
name: ftp
- port: 3001
targetPort: passive-1
- name: passive-1
containerPort: 3001
protocol: TCP
name: passive-1
- port: 3002
targetPort: passive-2
- name: passive-2
containerPort: 3002
protocol: TCP
name: passive-2
- it: Should set default port
asserts:
- equal:
@@ -1,6 +1,6 @@
suite: test deployment
templates:
- sealed-file-secret.yaml
- sealedFileSecret.yaml
tests:
- it: Should generate a sealed secret with the file
set: &values
@@ -13,6 +13,11 @@ tests:
{
"what": "this is a fixture"
}
- name: deploy-key
path: /deploy-key
filesToMount:
- name: deploy-key
source: xyz
# sourcePath: my-google-account-key.json
asserts:
- equal:
@@ -21,3 +26,5 @@ tests:
{
"what": "this is a fixture"
}
- hasDocuments:
count: 2
@@ -12,15 +12,8 @@ tests:
content:
secretRef:
name: release-name
- it: Should not reference secret if secret is disabled
- it: Should reference secret by name
set:
secretEnabled: false
asserts:
- isNull:
path: spec.template.spec.containers[0].envFrom
- it: Should not reference secret if secret is disabled
set:
secretEnabled: true
secretName: my-custom-secret
asserts:
- contains:
@@ -0,0 +1,25 @@
suite: test deployment
templates:
- deployment.yaml
- configmap.yaml
tests:
- it: Should inject a sidecar if one is specified
set:
sidecar:
repository: debian
tag: stable-slim
asserts:
- equal:
path: spec.template.spec.containers[1].image
value: debian:stable-slim
- it: Should inject a debug sidecar with shell and command specified
set:
sidecar:
repository: debian
tag: stable-slim
shell: "/bin/bash"
command: "while true; do sleep 30; done;"
asserts:
- equal:
path: spec.template.spec.containers[1].image
value: debian:stable-slim
@@ -31,3 +31,33 @@ tests:
- name: data
persistentVolumeClaim:
claimName: RELEASE-NAME-data
- it: Should recreate to avoid stuck deployments
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
size: 10Gi
storageClass: default
asserts:
- equal:
path: spec.strategy.type
value: Recreate
- it: Should strategy take precedence
set:
volumes:
- name: data
path: /var/lib/1clickinfra/data
size: 10Gi
storageClass: default
strategy: RollingUpdate
asserts:
- equal:
path: spec.strategy.type
value: RollingUpdate
- it: Should strategy be set
set:
strategy: Dummy
asserts:
- equal:
path: spec.strategy.type
value: Dummy
@@ -55,3 +55,49 @@ tests:
path: metadata.annotations
value:
kubernetes.io/ingress.class: 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,23 @@
suite: test deployment
templates:
- ingress.yaml
tests:
- it: Should use container port
set:
ingress:
host: chart-example.local
containerPort: 1234
asserts:
- equal:
path: spec.rules[0].http.paths[0].backend.servicePort
value: 1234
- it: Should use service port
set:
ingress:
host: chart-example.local
svcPort: 1234
containerPort: 5678
asserts:
- equal:
path: spec.rules[0].http.paths[0].backend.servicePort
value: 1234
@@ -0,0 +1,18 @@
suite: test service
templates:
- ingress.yaml
tests:
- it: Should set Gimlet taxonomy on Ingress
set:
gitRepository: github.com/laszlocph/demo-app
gitSha: xyz
ingress:
host: chart-example.local
tlsEnabled: true
asserts:
- equal:
path: metadata.annotations
value:
gimlet.io/git-repository: github.com/laszlocph/demo-app
gimlet.io/git-sha: xyz
@@ -1,6 +1,6 @@
suite: test deployment
templates:
- sealed-secret.yaml
- sealedSecret.yaml
tests:
- it: Should put sealed secrets in SealedSecret
set:
@@ -0,0 +1,27 @@
suite: test deployment
templates:
- service.yaml
tests:
- it: Should set containerPort as default
set:
containerPort: 11111
asserts:
- equal:
path: spec.ports[0].port
value: 11111
- it: Should set svcPort if it is defined
set:
containerPort: 11111
svcPort: 22222
asserts:
- equal:
path: spec.ports[0].port
value: 22222
- it: Should set nodePort if it is defined
set:
containerPort: 11111
nodePort: 33333
asserts:
- equal:
path: spec.ports[0].nodePort
value: 33333
@@ -0,0 +1,66 @@
suite: test deployment
templates:
- service.yaml
tests:
- it: Should set custom ports
set:
ports:
- containerPort: 21
name: ftp
- containerPort: 3001
name: passive-1
- containerPort: 3002
name: passive-2
asserts:
- equal:
path: spec.ports
value:
- name: ftp
port: 21
targetPort: ftp
protocol: TCP
- name: passive-1
port: 3001
targetPort: passive-1
protocol: TCP
- name: passive-2
port: 3002
targetPort: passive-2
protocol: TCP
- it: Should set custom svc port
set:
ports:
- containerPort: 2021
svcPort: 21
name: ftp
- containerPort: 3001
nodePort: 33001
name: passive-1
- containerPort: 3002
name: passive-2
asserts:
- equal:
path: spec.ports
value:
- name: ftp
port: 21
targetPort: ftp
protocol: TCP
- name: passive-1
port: 3001
nodePort: 33001
targetPort: passive-1
protocol: TCP
- name: passive-2
port: 3002
targetPort: passive-2
protocol: TCP
- it: Should set default port
asserts:
- equal:
path: spec.ports
value:
- port: 80
targetPort: http
protocol: TCP
name: http
@@ -0,0 +1,11 @@
suite: test deployment
templates:
- service.yaml
tests:
- it: Should set NodePort if flag enabled
set:
stickySessions: true
asserts:
- equal:
path: spec.externalTrafficPolicy
value: Local
@@ -0,0 +1,14 @@
suite: test service
templates:
- service.yaml
tests:
- it: Should set Gimlet taxonomy
set:
gitRepository: github.com/laszlocph/demo-app
gitSha: xyz
asserts:
- equal:
path: metadata.annotations
value:
gimlet.io/git-repository: github.com/laszlocph/demo-app
gimlet.io/git-sha: xyz
@@ -14,3 +14,10 @@ tests:
- equal:
path: spec.type
value: NodePort
- it: Should set LoadBalancer if flag enabled
set:
loadbalancerEnabled: true
asserts:
- equal:
path: spec.type
value: LoadBalancer
-6
View File
@@ -44,12 +44,6 @@ secretEnabled: false
shell: "/bin/sh"
debugSidecarEnabled: false
debugSidecar:
image: debian:stable-slim
shell: "/bin/bash"
command: "while true; do sleep 30; done;"
podDisruptionBudgetEnabled: true
spreadAcrossNodes: false
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+286 -72
View File
@@ -2,17 +2,61 @@ apiVersion: v1
entries:
cron-job:
- apiVersion: v2
created: "2021-04-07T14:27:01.135623609+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: ca99646f7696804dc4aaf66e05ce8d8876d13cbc8a3e8de231e0a04b85e82336
created: "2021-08-05T11:27:25.178124209Z"
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: 2212e5e2ed7823252f45bd7bb958f225978584018b4177dca2385ef559cfad18
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.2.2.tgz
version: 0.2.2
- apiVersion: v2
created: "2021-08-05T11:27:25.1773224Z"
dependencies:
- name: common
repository: file://../common
version: 0.1.0
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: fed42cf26db57373f49a6931779813c193322ed98d6f57822176267c74f37c5c
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.2.1.tgz
version: 0.2.1
- apiVersion: v2
created: "2021-08-05T11:27:25.176662794Z"
dependencies:
- name: common
repository: file://../common
version: 0.1.0
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 1a7f50437f522d8941c59d8461668befb9142d53bc3f98aa682585af9dfb0f86
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2021-08-05T11:27:25.175748884Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 02a23d8b4177290a518ee5de6a5e1f557f7409f94b2e04f23fedea193464188f
name: cron-job
type: application
urls:
- https://chart.onechart.dev/cron-job-0.1.2.tgz
version: 0.1.2
- apiVersion: v2
created: "2021-04-07T14:27:01.135350915+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.17535248Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: afab9ba533a4686827b54b0dad64f5bbf76f7fbc075e35fb1034689db9ab9dda
name: cron-job
type: application
@@ -20,8 +64,9 @@ entries:
- https://chart.onechart.dev/cron-job-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2021-04-07T14:27:01.135018348+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.174939276Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 01f9fa40c1c4085d7688474ab00c9e9d21bd1d0793db6b75f2edda0e18456282
name: cron-job
type: application
@@ -30,16 +75,16 @@ entries:
version: 0.1.0
namespaces:
- apiVersion: v2
created: "2021-04-07T14:27:01.136266841+02:00"
created: "2021-08-05T11:27:25.178891717Z"
description: Chart to create namespaces and their defaults
digest: b23f0c98375246c074056fe54e79a0162a01c0a259e45f3380b1f2cff7ff8363
digest: 20e8bb7a953cc9ec53e6575f88a45199a4af60c1dc41bddf973a5a27a266306d
name: namespaces
type: application
urls:
- https://chart.onechart.dev/namespaces-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2021-04-07T14:27:01.135899818+02:00"
created: "2021-08-05T11:27:25.178416812Z"
description: Chart to create namespaces and their defaults
digest: 88b06d78a9d1bda6f2ee15b1fad7f25399ac25c2320fb9a8dfa1a4fd14afdf6e
name: namespaces
@@ -49,8 +94,151 @@ entries:
version: 0.1.0
onechart:
- apiVersion: v2
created: "2021-04-07T14:27:01.147074113+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.203273768Z"
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: 91d5a0b5a62b27fd1b87fbcb3aa031eae890c553543fc9c20a0fa575e4512e49
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.27.0.tgz
version: 0.27.0
- apiVersion: v2
created: "2021-08-05T11:27:25.202382859Z"
dependencies:
- name: common
repository: file://../common
version: 0.1.0
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 69d8a1abcf21235c9de681d5827fb5e8abbebf2ccec221f3a96aee2cfd31ed7d
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.27.0-rc3.tgz
version: 0.27.0-rc3
- apiVersion: v2
created: "2021-08-05T11:27:25.200850443Z"
dependencies:
- name: common
repository: file://../common
version: 0.1.0
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: a9d0b0a9c37debf5c996c20d54b31dad8322312e3e62dcf844ce45b251c0f031
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.27.0-rc2.tgz
version: 0.27.0-rc2
- apiVersion: v2
created: "2021-08-05T11:27:25.19957933Z"
dependencies:
- name: common
repository: file://../common
version: 0.1.0
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: b7a6167526d0a37b52cfa256a258ba65aa0c87846371dde04a254b3a252af0ad
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.27.0-rc1.tgz
version: 0.27.0-rc1
- apiVersion: v2
created: "2021-08-05T11:27:25.198353317Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 3563a30dba0b6a9c7a1a3df358ca5c41e952882fd2f1bbe33c8103536870d651
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.26.0.tgz
version: 0.26.0
- apiVersion: v2
created: "2021-08-05T11:27:25.197583109Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: efcbabde8193f1c3ecb34e4ede8f5efead1f77d8096180f4e8640ff94df07461
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.25.0.tgz
version: 0.25.0
- apiVersion: v2
created: "2021-08-05T11:27:25.196925002Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 59f1389268efb3d970f84cae968e3ecbde57015df1201411f9f46becb4b09844
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.24.1.tgz
version: 0.24.1
- apiVersion: v2
created: "2021-08-05T11:27:25.196120094Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 74b6fdf49a9fa5327fc0639f1d97f0cf553f89030c01379f3c91a5adb6f8a0f1
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.24.0.tgz
version: 0.24.0
- apiVersion: v2
created: "2021-08-05T11:27:25.195474088Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: f8e444c2d5c5a4e73b76a971effda5246d3200427be45c2fb546bc990f197ecc
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.23.0.tgz
version: 0.23.0
- apiVersion: v2
created: "2021-08-05T11:27:25.194798081Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: dfad2865c3eb54f0366300ef63b8ba1863ca69aa27e5ca5d3512c0d799d004d3
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.22.0.tgz
version: 0.22.0
- apiVersion: v2
created: "2021-08-05T11:27:25.194168174Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 1b837cdefcb7025c40bffdd620a0f116df5ccb9023ac6a8c538bd8e77b3eb80a
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.21.0.tgz
version: 0.21.0
- apiVersion: v2
created: "2021-08-05T11:27:25.193511767Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: a4f5741b46b89cd4328fbd96f96d85d53bae64b526730de5097ec33639c9c54f
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.20.0.tgz
version: 0.20.0
- apiVersion: v2
created: "2021-08-05T11:27:25.192596458Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 59dd16db4f8519d3922da349aabcc2daec8385fc8a98d0f3163a84b98cc12f61
name: onechart
type: application
urls:
- https://chart.onechart.dev/onechart-0.19.0.tgz
version: 0.19.0
- apiVersion: v2
created: "2021-08-05T11:27:25.192027052Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 74c4c6a448e66929dfcafc5a641b5bdbaa8af6832c6065b02ce756dfeb3fc438
name: onechart
type: application
@@ -58,8 +246,9 @@ entries:
- https://chart.onechart.dev/onechart-0.18.0.tgz
version: 0.18.0
- apiVersion: v2
created: "2021-04-07T14:27:01.146573953+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.191378145Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: e1ba0bb54c3a3e13b661bb608839c7013d12e24d0437581ebfdbf5ce4a283d4d
name: onechart
type: application
@@ -67,8 +256,9 @@ entries:
- https://chart.onechart.dev/onechart-0.17.0.tgz
version: 0.17.0
- apiVersion: v2
created: "2021-04-07T14:27:01.145978425+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.190629738Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 596350a4977b305e4d5aae16dd8dcca62a17ea5cec9f444aacd82a12d6b3dcfe
name: onechart
type: application
@@ -76,8 +266,9 @@ entries:
- https://chart.onechart.dev/onechart-0.16.0.tgz
version: 0.16.0
- apiVersion: v2
created: "2021-04-07T14:27:01.145350592+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.18986613Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: d1a5a9e9bff274f32f6849bc58b201c7886240b94dd6b70b5cf3411d9ad03393
name: onechart
type: application
@@ -85,8 +276,9 @@ entries:
- https://chart.onechart.dev/onechart-0.15.3.tgz
version: 0.15.3
- apiVersion: v2
created: "2021-04-07T14:27:01.144733971+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.188645317Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 626410479f67bbbfa7e7fc94f6dfd8aae50a2bdf9fc72ec395c835dacbd5dbe7
name: onechart
type: application
@@ -94,8 +286,9 @@ entries:
- https://chart.onechart.dev/onechart-0.15.2.tgz
version: 0.15.2
- apiVersion: v2
created: "2021-04-07T14:27:01.144146593+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.187329804Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: e6d237aff4abedee6deb5ba57e8183c7598b255d40afdd04c03f73014f706aa3
name: onechart
type: application
@@ -103,8 +296,9 @@ entries:
- https://chart.onechart.dev/onechart-0.15.1.tgz
version: 0.15.1
- apiVersion: v2
created: "2021-04-07T14:27:01.143531105+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.185737887Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: d45fc4cc214bc94e4c2c10d6432562d7e65ee5e55226f677aafdfe101d7f6e7f
name: onechart
type: application
@@ -112,8 +306,9 @@ entries:
- https://chart.onechart.dev/onechart-0.15.0.tgz
version: 0.15.0
- apiVersion: v2
created: "2021-04-07T14:27:01.142882262+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.18505208Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 7e61a72a3400e09c44539094558a2084621239015132d20551c4593be3b5bede
name: onechart
type: application
@@ -121,8 +316,9 @@ entries:
- https://chart.onechart.dev/onechart-0.14.0.tgz
version: 0.14.0
- apiVersion: v2
created: "2021-04-07T14:27:01.142304267+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.184432074Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 743a9b552233770713f0c22edbe8cf4f55c890a59106e1f33055c1cb31be5a27
name: onechart
type: application
@@ -130,8 +326,9 @@ entries:
- https://chart.onechart.dev/onechart-0.13.2.tgz
version: 0.13.2
- apiVersion: v2
created: "2021-04-07T14:27:01.141736896+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.183819467Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 02bf9537e13cea0da9dc3bfbcdd45d51576354cb18b7c1c7cec76f829e20105f
name: onechart
type: application
@@ -139,8 +336,9 @@ entries:
- https://chart.onechart.dev/onechart-0.13.1.tgz
version: 0.13.1
- apiVersion: v2
created: "2021-04-07T14:27:01.141147797+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.183222861Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 5183ed825c4f255ca5a4f0ffeb8c92bbad3c43b42fc1b798f1f1fc6de2a30bef
name: onechart
type: application
@@ -148,8 +346,9 @@ entries:
- https://chart.onechart.dev/onechart-0.13.0.tgz
version: 0.13.0
- apiVersion: v2
created: "2021-04-07T14:27:01.14039429+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.182643955Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: e131a502d12a6b074453f1da8d0d1ca7145e80a025f31252b24cc3d62375a4c1
name: onechart
type: application
@@ -157,8 +356,9 @@ entries:
- https://chart.onechart.dev/onechart-0.12.2.tgz
version: 0.12.2
- apiVersion: v2
created: "2021-04-07T14:27:01.139434402+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.18212595Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 8e1a25d18a546c4ec5e970991301a08e38495a964a8f6e0a2ee97f92c41c9691
name: onechart
type: application
@@ -166,8 +366,9 @@ entries:
- https://chart.onechart.dev/onechart-0.12.1.tgz
version: 0.12.1
- apiVersion: v2
created: "2021-04-07T14:27:01.138885016+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.181549144Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: f38a6f2fbf5c847b00a9140ecd004e0bf667d859aa83d8dac4a2d0eecd1a361f
name: onechart
type: application
@@ -175,8 +376,9 @@ entries:
- https://chart.onechart.dev/onechart-0.12.0.tgz
version: 0.12.0
- apiVersion: v2
created: "2021-04-07T14:27:01.138328795+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.180952538Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 75c16f84b5e99aad5aa7203f5c1ce2a9589d85b89afec4e161a2e0344a522c17
name: onechart
type: application
@@ -184,8 +386,9 @@ entries:
- https://chart.onechart.dev/onechart-0.11.0.tgz
version: 0.11.0
- apiVersion: v2
created: "2021-04-07T14:27:01.137791641+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.180395732Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 40f1166e858d35cb237debd1390187884641b0e8c29a80aaa195b66b0ee73516
name: onechart
type: application
@@ -193,8 +396,9 @@ entries:
- https://chart.onechart.dev/onechart-0.10.0.tgz
version: 0.10.0
- apiVersion: v2
created: "2021-04-07T14:27:01.153556969+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.208939326Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: cb42b08b463b401f6718bba7c171ee55c173021c5101ea1b3068ef3899a6e164
name: onechart
type: application
@@ -202,8 +406,9 @@ entries:
- https://chart.onechart.dev/onechart-0.9.0.tgz
version: 0.9.0
- apiVersion: v2
created: "2021-04-07T14:27:01.153088143+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.208402421Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: ce046d209a9e8fa07766712492cc896451473fafca129dbc9c675107d0e39c52
name: onechart
type: application
@@ -211,8 +416,9 @@ entries:
- https://chart.onechart.dev/onechart-0.8.2.tgz
version: 0.8.2
- apiVersion: v2
created: "2021-04-07T14:27:01.15266273+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.207874215Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 422d7e6ea1bed530d4cd5e23417b229772a6fe2e835828ca282a3e6c9b646b2b
name: onechart
type: application
@@ -220,8 +426,9 @@ entries:
- https://chart.onechart.dev/onechart-0.8.1.tgz
version: 0.8.1
- apiVersion: v2
created: "2021-04-07T14:27:01.152246839+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.207415011Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 8001bd02fc90ad66da7941c136ee8d0e665ea90b6e1ac27d82b048f2b12b3964
name: onechart
type: application
@@ -229,8 +436,9 @@ entries:
- https://chart.onechart.dev/onechart-0.8.0.tgz
version: 0.8.0
- apiVersion: v2
created: "2021-04-07T14:27:01.151792397+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.206976306Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: d1454b430eb7131d0d450f7c0a8a6698278893c61e03d48649a8112dfcf42b72
name: onechart
type: application
@@ -238,8 +446,9 @@ entries:
- https://chart.onechart.dev/onechart-0.7.1.tgz
version: 0.7.1
- apiVersion: v2
created: "2021-04-07T14:27:01.151364196+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.206568102Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 4bf90835f287917671ec40b5b395da9332cf18e70f248d250f8d5a72360dcb4e
name: onechart
type: application
@@ -247,8 +456,9 @@ entries:
- https://chart.onechart.dev/onechart-0.7.0.tgz
version: 0.7.0
- apiVersion: v2
created: "2021-04-07T14:27:01.150904482+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.206158298Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 0cade489fc74a040f5e7f71d01c6fa00d3f68b4752a4d8234ccf2c1504b4c0a1
name: onechart
type: application
@@ -256,8 +466,9 @@ entries:
- https://chart.onechart.dev/onechart-0.6.1.tgz
version: 0.6.1
- apiVersion: v2
created: "2021-04-07T14:27:01.150480273+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.205746593Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: d607820a7e104eaaa88c153c1f2f7f409ef4c612ad747caeb3a671cf3fce03d4
name: onechart
type: application
@@ -265,8 +476,9 @@ entries:
- https://chart.onechart.dev/onechart-0.6.0.tgz
version: 0.6.0
- apiVersion: v2
created: "2021-04-07T14:27:01.150026286+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.205325489Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: ddf7cf87402095d62855898744b805115fdf86c4b295e0a4def0c50408fd9138
name: onechart
type: application
@@ -274,8 +486,9 @@ entries:
- https://chart.onechart.dev/onechart-0.5.1.tgz
version: 0.5.1
- apiVersion: v2
created: "2021-04-07T14:27:01.149359976+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.204996486Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: adf3c2cf3a27e58ec75620599e0e1c2031a7410a061a590317beeff6d8a9ad69
name: onechart
type: application
@@ -283,8 +496,9 @@ entries:
- https://chart.onechart.dev/onechart-0.5.0.tgz
version: 0.5.0
- apiVersion: v2
created: "2021-04-07T14:27:01.148710367+02:00"
description: One chart to rule them all. A generic Helm chart for your application deployments. Because no-one can remember the Kubernetes yaml syntax.
created: "2021-08-05T11:27:25.204671882Z"
description: One chart to rule them all. A generic Helm chart for your application
deployments. Because no-one can remember the Kubernetes yaml syntax.
digest: 8dab33263c4e632aeb4656c666871440b589497b70e76a1d6c3a5e3db1a30bba
name: onechart
type: application
@@ -292,7 +506,7 @@ entries:
- https://chart.onechart.dev/onechart-0.4.0.tgz
version: 0.4.0
- apiVersion: v2
created: "2021-04-07T14:27:01.148354748+02:00"
created: "2021-08-05T11:27:25.204346579Z"
description: A generic Helm chart for your application deployments
digest: fbaf6139e0ef8ad9a87cc1e41a97c7d25fdcf7ea17fa6364952f1a851a87480a
name: onechart
@@ -301,7 +515,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.2.tgz
version: 0.3.2
- apiVersion: v2
created: "2021-04-07T14:27:01.148026466+02:00"
created: "2021-08-05T11:27:25.204058176Z"
description: A generic Helm chart for your application deployments
digest: bd6f5b1865ab9b05fc6925c163ab8045235bd2723dba31f09d5083d24322d1f8
name: onechart
@@ -310,7 +524,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.1.tgz
version: 0.3.1
- apiVersion: v2
created: "2021-04-07T14:27:01.147701247+02:00"
created: "2021-08-05T11:27:25.203715572Z"
description: A generic Helm chart for your application deployments
digest: c79cef21eceab948144a289298cdf1e20e77a0782a883d7d65f9e709ccbbc271
name: onechart
@@ -319,7 +533,7 @@ entries:
- https://chart.onechart.dev/onechart-0.3.0.tgz
version: 0.3.0
- apiVersion: v2
created: "2021-04-07T14:27:01.147391847+02:00"
created: "2021-08-05T11:27:25.192855561Z"
description: A generic Helm chart for your application deployments
digest: dd814ac5d08d5e6163a1b769df6803f5cb0f09d906045086dfcc5be522bb1ec3
name: onechart
@@ -328,7 +542,7 @@ entries:
- https://chart.onechart.dev/onechart-0.2.0.tgz
version: 0.2.0
- apiVersion: v2
created: "2021-04-07T14:27:01.137265818+02:00"
created: "2021-08-05T11:27:25.179858627Z"
description: A generic Helm chart for your application deployments
digest: e46062df8053840cbfbba26c0a66a843a79f15a0b43a145ed019327513bd5098
name: onechart
@@ -337,7 +551,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.2.tgz
version: 0.1.2
- apiVersion: v2
created: "2021-04-07T14:27:01.136924984+02:00"
created: "2021-08-05T11:27:25.179536023Z"
description: A generic Helm chart for your application deployments
digest: a7bbc8b7dcc008e89156cd1830282b7d39c0592e82ccdcefb77a25a42eca2a3d
name: onechart
@@ -346,7 +560,7 @@ entries:
- https://chart.onechart.dev/onechart-0.1.1.tgz
version: 0.1.1
- apiVersion: v2
created: "2021-04-07T14:27:01.136592761+02:00"
created: "2021-08-05T11:27:25.17922662Z"
description: A generic Helm chart for your application deployments
digest: 1ed8c0645abdae6c950526e9c5410dc056847a11700dc7def5f1c55eb7de0cd4
name: onechart
@@ -354,4 +568,4 @@ entries:
urls:
- https://chart.onechart.dev/onechart-0.1.0.tgz
version: 0.1.0
generated: "2021-04-07T14:27:01.134563333+02:00"
generated: "2021-08-05T11:27:25.174314569Z"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+17
View File
@@ -0,0 +1,17 @@
image:
repository: debian
tag: stable-slim
schedule: "*/1 * * * *"
command: |
echo "I'm alive"
shell: "/bin/sh"
vars:
MY_VAR: "value"
volumes:
- name: data
path: /data
size: 10Gi
storageClass: default
+25 -11
View File
@@ -1,11 +1,25 @@
fileSecrets:
- name: google-account-key
path: /google-account-key
secrets:
key.json: supersecret
another.json: |
this
is
a
multiline
secret
ingress:
host: chart-example.local
annotations:
kubernetes.io/ingress.class: nginx
ingresses:
- host: chart-example.local
tlsEnabled: true
annotations:
kubernetes.io/ingress.class: nginx
- host: another.local
tlsEnabled: true
annotations:
kubernetes.io/ingress.class: nginx
gitRepository: github.com/laszlocph/demo-app
gitSha: xyz
vars:
MY_VAR: "value"
volumes:
- name: data
path: /data
size: 10Gi
storageClass: default