Compare commits
87 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 213303b10e | |||
| 13d860f7f4 | |||
| 47ae89c7e6 | |||
| 7bb30fccab | |||
| f38708f864 | |||
| d9fa868eaa | |||
| 24c8634b09 | |||
| 937cb67c30 | |||
| 07afdb14c1 | |||
| 8c82240186 | |||
| 4e44c8104c | |||
| 2e97926d70 | |||
| d6c34a8349 | |||
| e85c443284 | |||
| 58292c747e | |||
| 607d4301bf | |||
| 269ab7e376 | |||
| 324617b0de | |||
| 6a897ff5a3 | |||
| 10205747f2 | |||
| c56e2aa5b4 | |||
| 167ce8cff5 | |||
| 539caf68a0 | |||
| eec4f30c67 | |||
| 9609cc2c3a | |||
| 59a5bfde2f | |||
| 98390f73c8 | |||
| 8417a0363d | |||
| 5910080e17 | |||
| 922111d2de | |||
| 4352af0abc | |||
| 164bfec8b3 | |||
| d91040c0a0 | |||
| 4942164b9a | |||
| 1082767c59 | |||
| 74c16555dd | |||
| ae6c219132 | |||
| ade37a82c7 | |||
| b249805bf3 | |||
| efd5d819f3 | |||
| b2700d990d | |||
| d0d0b28c9a | |||
| 0a162de948 | |||
| 442c98f5d1 | |||
| 73fd1235c2 | |||
| c68e979ba0 | |||
| 96e8f0db60 | |||
| 46cd92059c | |||
| 0000ad9f4b | |||
| 7642eb3dc7 | |||
| 3326cd3c38 | |||
| 5ac5e6bc03 | |||
| 54946f8caf | |||
| addc69413c | |||
| 50b0f9cf89 | |||
| bc933d1668 | |||
| 8c124da61a | |||
| b6cdead8e6 | |||
| eb78ab24e6 | |||
| e6b527aae6 | |||
| 7ece4e42dd | |||
| c2d6250a91 | |||
| bc74e6f201 | |||
| 27698eda01 | |||
| b11b62a970 | |||
| 5012c4ae5d | |||
| e539810c80 | |||
| a274eacba2 | |||
| e28ed88e2f | |||
| 1ecdba097b | |||
| 6ee68880ae | |||
| 28918e3359 | |||
| ee15631900 | |||
| 6acf4ec41f | |||
| 155d821738 | |||
| bc7d3d18ed | |||
| 3b41c38dba | |||
| 1cbdca4eab | |||
| b929abd3f8 | |||
| c51bc8745e | |||
| 63b56ae029 | |||
| a2c4d5e66c | |||
| b30f3885be | |||
| d436fe1645 | |||
| 39901f5ca4 | |||
| 6d31bcd7a0 | |||
| c439bfd2ad |
@@ -0,0 +1,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 }}
|
||||
@@ -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
|
||||
|
||||
@@ -36,21 +36,39 @@ See all [Examples](/examples/deploying-an-image)
|
||||
|
||||
Thank you for your interest in contributing to the Gimlet project.
|
||||
|
||||
Below are some of the guidelines and best practices for contributing to this repository:
|
||||
Below are some guidelines and best practices for contributing to this repository:
|
||||
|
||||
### Issues
|
||||
|
||||
If you are running a fork of OneChart and would like to upstream a feature, please open a pull request for it.
|
||||
|
||||
### New Features
|
||||
|
||||
If you are planning to add a new feature to OneChart, please open an issue for it first. Helm charts are prone to having too many features, and OneChart want to keep the supported use-cases in-check. Proposed features have to be generally applicable, targeting newcomers to the Kubernetes ecosystem.
|
||||
|
||||
### New Features / Components
|
||||
|
||||
If you have any ideas on new features or want to improve the existing features, you can suggest it by opening a [GitHub issue](https://github.com/gimlet-io/onechart/issues/new). Make sure to include detailed information about the feature requests, use cases, and any other information that could be helpful.
|
||||
|
||||
### Pull Request Process
|
||||
|
||||
* Fork the repository.
|
||||
* Create a new branch and make your changes.
|
||||
* Open a pull request with detailed commit message and reference issue number if applicable.
|
||||
* A maintainer will review your pull request, and help you throughout the process.
|
||||
|
||||
## Development
|
||||
|
||||
Development of OneChart does not differ from developing a regular Helm chart.
|
||||
|
||||
The source for OneChart is under `charts/onechart` where you can locate the `Chart.yaml`, `values.yaml` and the templates.
|
||||
|
||||
We write unit tests for our helm charts. Pull requests are only accepted with proper test coverage.
|
||||
|
||||
The tests are located under `charts/onechart/test` and use the https://github.com/DataDog/helm-unittest.git Helm plugin to run the tests.
|
||||
|
||||
For installation, refer to the CI workflow at `.github/workflows/build.yaml`.
|
||||
|
||||
## Release process
|
||||
|
||||
`make all` to test and package the Helm chart.
|
||||
The chart archives are put under `docs/` together with the Helm repository manifest (index.yaml)
|
||||
It is then served with Github Pages on https://chart.onechart.dev
|
||||
|
||||
Github Actions is used to automate the make calls on git tag events.
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -0,0 +1,18 @@
|
||||
apiVersion: v2
|
||||
name: common
|
||||
description: A Helm chart for Kubernetes
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: library
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.0
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- define "common.configmap.tpl" -}}
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,21 @@
|
||||
{{- define "common.envFromRef.tpl" -}}
|
||||
{{- if or (or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets) .Values.secretName }}
|
||||
envFrom: &envFrom
|
||||
{{- if .Values.vars }}
|
||||
- configMapRef:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretEnabled }}
|
||||
- secretRef:
|
||||
name: {{ include "common.robustName" $.Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretName }}
|
||||
- secretRef:
|
||||
name: {{ .Values.secretName }}
|
||||
{{- end }}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
- secretRef:
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,3 +1,4 @@
|
||||
{{- define "common.fileSecret.tpl" -}}
|
||||
{{- range .Values.fileSecrets }}
|
||||
---
|
||||
kind: Secret
|
||||
@@ -11,3 +12,4 @@ data:
|
||||
{{ $key }}: {{ $val | b64enc }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,10 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Create robustName that can be used as Kubernetes resource name, and as subdomain as well
|
||||
\w – Latin letters, digits, underscore '_' .
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "common.robustName" -}}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- define "common.pvc.tpl" -}}
|
||||
{{- range .Values.volumes }}
|
||||
{{- if not .existingClaim }}
|
||||
{{- $robustName := include "common.robustName" $.Release.Name }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $robustName .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
+3
-1
@@ -1,5 +1,6 @@
|
||||
{{- define "common.sealedFileSecret.tpl" -}}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
{{- $robustName := include "common.robustName" $.Release.Name }}
|
||||
---
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
@@ -22,3 +23,4 @@ spec:
|
||||
name: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
+6
-4
@@ -1,8 +1,9 @@
|
||||
{{- if .Values.sealedSecrets }}
|
||||
{{- define "common.sealedSecret.tpl" -}}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
@@ -15,6 +16,7 @@ spec:
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
name: {{ template "common.robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- define "common.volumeMountsRef.tpl" -}}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumeMounts: &volumeMounts
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- define "common.volumesRef.tpl" -}}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumes:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
persistentVolumeClaim:
|
||||
{{- if .existingClaim }}
|
||||
claimName: {{ .existingClaim }}
|
||||
{{ else }}
|
||||
claimName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
|
||||
generated: "2021-08-05T10:18:17.533366128+02:00"
|
||||
@@ -15,4 +15,9 @@ type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.2
|
||||
version: 0.2.2
|
||||
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 0.1.0
|
||||
repository: file://../common
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,71 @@
|
||||
[
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/image",
|
||||
"#/properties/shell",
|
||||
"#/properties/command"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/replicas": {
|
||||
"ui:widget": "range"
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Basics",
|
||||
"icon": "M17 8l4 4m0 0l-4 4m4-4H3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/resources"
|
||||
],
|
||||
"uiSchema": {
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Resources",
|
||||
"icon": "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/vars"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/vars": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Environment Variables",
|
||||
"icon": "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/sealedSecrets"
|
||||
],
|
||||
"uiSchema": {
|
||||
"#/properties/sealedSecrets": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"metaData": {
|
||||
"name": "Sealed Secrets",
|
||||
"icon": "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"schemaIDs": [
|
||||
"#/properties/volumes"
|
||||
],
|
||||
"uiSchema": {},
|
||||
"metaData": {
|
||||
"name": "Volumes",
|
||||
"icon": "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -48,7 +48,7 @@ Selector labels
|
||||
*/}}
|
||||
{{- define "helm-chart.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "helm-chart.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/instance: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
@@ -61,3 +61,12 @@ Create the name of the service account to use
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create robustName that can be used as Kubernetes resource name, and as subdomain as well
|
||||
\w – Latin letters, digits, underscore '_' .
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "robustName" -}}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,13 +1 @@
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.configmap.tpl" . -}}
|
||||
|
||||
@@ -7,10 +7,9 @@ metadata:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
spec:
|
||||
schedule: {{ .Values.schedule | quote }}
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
concurrencyPolicy: Forbid
|
||||
startingDeadlineSeconds: 120
|
||||
{{- with .Values.constraints }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
@@ -30,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 +1 @@
|
||||
{{- range .Values.volumes }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- include "common.pvc.tpl" . -}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedFileSecret.tpl" . -}}
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedSecret.tpl" . -}}
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
content:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME
|
||||
name: release-name
|
||||
- it: Should not reference configmap if vars are not set
|
||||
asserts:
|
||||
- isNull:
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
suite: test cron job
|
||||
templates:
|
||||
- cronJob.yaml
|
||||
tests:
|
||||
- it: Should have default constraints
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.successfulJobsHistoryLimit
|
||||
value: 1
|
||||
- it: Should constraints be configurable
|
||||
set:
|
||||
constraints:
|
||||
successfulJobsHistoryLimit: 2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.successfulJobsHistoryLimit
|
||||
value: 2
|
||||
@@ -0,0 +1,28 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- cronJob.yaml
|
||||
tests:
|
||||
- it: Should mount volume
|
||||
set: &values
|
||||
sealedFileSecrets:
|
||||
- name: google-account-key
|
||||
path: /google-account-key
|
||||
filesToMount:
|
||||
- name: key.json
|
||||
sourcePath: my-google-acoount-key.json
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].volumeMounts
|
||||
value:
|
||||
- name: google-account-key
|
||||
mountPath: /google-account-key
|
||||
readOnly: true
|
||||
- it: Should reference volume
|
||||
set: *values
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.jobTemplate.spec.template.spec.volumes
|
||||
value:
|
||||
- name: google-account-key
|
||||
secret:
|
||||
secretName: RELEASE-NAME-google-account-key
|
||||
@@ -5,16 +5,16 @@ templates:
|
||||
tests:
|
||||
- it: Should reference secret if secret is enabled
|
||||
set:
|
||||
secret.enabled: true
|
||||
secretEnabled: true
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
content:
|
||||
secretRef:
|
||||
name: RELEASE-NAME
|
||||
name: release-name
|
||||
- it: Should not reference secret if secret is disabled
|
||||
set:
|
||||
secret.enabled: false
|
||||
secretEnabled: false
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.jobTemplate.spec.template.spec.containers[0].envFrom
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "http://example.com/example.json",
|
||||
"type": "object",
|
||||
"title": "The root schema",
|
||||
"description": "The root schema comprises the entire JSON document.",
|
||||
"default": {},
|
||||
"required": [],
|
||||
"properties": {
|
||||
"image": {
|
||||
"$id": "#/properties/image",
|
||||
"type": "object",
|
||||
"title": "Image",
|
||||
"description": "The image to deploy",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"repository": "nginx",
|
||||
"tag": "latest"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"repository",
|
||||
"tag"
|
||||
],
|
||||
"properties": {
|
||||
"repository": {
|
||||
"$id": "#/properties/image/properties/repository",
|
||||
"type": "string",
|
||||
"title": "Repository",
|
||||
"description": "",
|
||||
"default": "nginx",
|
||||
"examples": [
|
||||
"nginx"
|
||||
]
|
||||
},
|
||||
"tag": {
|
||||
"$id": "#/properties/image/properties/tag",
|
||||
"type": "string",
|
||||
"title": "Tag",
|
||||
"description": "",
|
||||
"default": "1.19.3",
|
||||
"examples": [
|
||||
"latest"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"podAnnotations": {
|
||||
"$id": "#/properties/podAnnotations",
|
||||
"type": "object",
|
||||
"title": "The podAnnotations schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"resources": {
|
||||
"$id": "#/properties/resources",
|
||||
"type": "object",
|
||||
"title": "",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"requests": {
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
},
|
||||
"limits": {
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {
|
||||
"requests": {
|
||||
"$id": "#/properties/resources/properties/requests",
|
||||
"type": "object",
|
||||
"title": "Requests",
|
||||
"description": "The typical resources your app uses",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"cpu",
|
||||
"memory"
|
||||
],
|
||||
"properties": {
|
||||
"cpu": {
|
||||
"$id": "#/properties/resources/properties/requests/properties/cpu",
|
||||
"type": "string",
|
||||
"title": "CPU",
|
||||
"description": "",
|
||||
"default": "200m",
|
||||
"examples": [
|
||||
"200m"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"$id": "#/properties/resources/properties/requests/properties/memory",
|
||||
"type": "string",
|
||||
"title": "Memory",
|
||||
"description": "",
|
||||
"default": "200Mi",
|
||||
"examples": [
|
||||
"200mi"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"$id": "#/properties/resources/properties/limits",
|
||||
"type": "object",
|
||||
"title": "Limits",
|
||||
"description": "The maximum resources your app may use",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"cpu": "200m",
|
||||
"memory": "200mi"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"cpu",
|
||||
"memory"
|
||||
],
|
||||
"properties": {
|
||||
"cpu": {
|
||||
"$id": "#/properties/resources/properties/limits/properties/cpu",
|
||||
"type": "string",
|
||||
"title": "CPU",
|
||||
"description": "The hard ceiling for the app's CPU usage. The app will be throttled to this limit. 1000m or 1000 CPU shares = 1 CPU core",
|
||||
"default": "200m",
|
||||
"examples": [
|
||||
"200m"
|
||||
]
|
||||
},
|
||||
"memory": {
|
||||
"$id": "#/properties/resources/properties/limits/properties/memory",
|
||||
"type": "string",
|
||||
"title": "Memory",
|
||||
"description": "The hard ceiling for the app's memory usage. The app will be RESTARTED if it reaches this limit",
|
||||
"default": "200Mi",
|
||||
"examples": [
|
||||
"200mi"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nodeSelector": {
|
||||
"$id": "#/properties/nodeSelector",
|
||||
"type": "object",
|
||||
"title": "The nodeSelector schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"tolerations": {
|
||||
"$id": "#/properties/tolerations",
|
||||
"type": "array",
|
||||
"title": "The tolerations schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": [],
|
||||
"examples": [
|
||||
[]
|
||||
],
|
||||
"additionalItems": true,
|
||||
"items": {
|
||||
"$id": "#/properties/tolerations/items"
|
||||
}
|
||||
},
|
||||
"affinity": {
|
||||
"$id": "#/properties/affinity",
|
||||
"type": "object",
|
||||
"title": "The affinity schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{}
|
||||
],
|
||||
"required": [],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"secret": {
|
||||
"$id": "#/properties/secret",
|
||||
"type": "object",
|
||||
"title": "The secret schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"enabled": false
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"enabled"
|
||||
],
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"$id": "#/properties/secret/properties/enabled",
|
||||
"type": "boolean",
|
||||
"title": "The enabled schema",
|
||||
"description": "An explanation about the purpose of this instance.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"shell": {
|
||||
"$id": "#/properties/shell",
|
||||
"type": "string",
|
||||
"title": "Shell",
|
||||
"description": "The shell to use",
|
||||
"default": "/bin/sh"
|
||||
},
|
||||
"command": {
|
||||
"$id": "#/properties/command",
|
||||
"type": "string",
|
||||
"title": "Command",
|
||||
"description": "The command to run in the cronjob",
|
||||
"default": "echo \"I'm alive\""
|
||||
},
|
||||
"vars": {
|
||||
"$id": "#/properties/vars",
|
||||
"type": "object",
|
||||
"title": "Environment variables",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"VAR_1": "value 1",
|
||||
"VAR_2": "value 2"
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"sealedSecrets": {
|
||||
"$id": "#/properties/sealedSecrets",
|
||||
"type": "object",
|
||||
"title": "Sealed Secrets",
|
||||
"description": "",
|
||||
"default": {},
|
||||
"examples": [
|
||||
{
|
||||
"VAR_1": "value 1",
|
||||
"VAR_2": "value 2"
|
||||
}
|
||||
],
|
||||
"required": [],
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"volumes": {
|
||||
"$id": "#/properties/volumes",
|
||||
"type": "array",
|
||||
"title": "Volumes",
|
||||
"default": [],
|
||||
"additionalItems": true,
|
||||
"items": {
|
||||
"$id": "#/properties/volumes/items",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/name",
|
||||
"type": "string",
|
||||
"title": "Name",
|
||||
"description": "The name of the volume. Used only to recognize the volumes purpose in the config later on",
|
||||
"default": "data"
|
||||
},
|
||||
"path": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/path",
|
||||
"type": "string",
|
||||
"title": "Path",
|
||||
"description": "The mount path inside the container",
|
||||
"default": "/data"
|
||||
},
|
||||
"size": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/size",
|
||||
"type": "string",
|
||||
"title": "Size",
|
||||
"description": "",
|
||||
"default": "10Gi"
|
||||
},
|
||||
"storageClass": {
|
||||
"$id": "#/properties/volumes/items/anyOf/0/properties/storageClass",
|
||||
"type": "string",
|
||||
"title": "Storage Class",
|
||||
"description": "The slug indicating the disk type in your cloud provider. `standard` on Google Cloud, `default` on Azure; `do-block-storage` on Digital Ocean",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
@@ -27,3 +27,9 @@ affinity: {}
|
||||
|
||||
secret:
|
||||
enabled: false
|
||||
|
||||
constraints:
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
concurrencyPolicy: Forbid
|
||||
startingDeadlineSeconds: 120
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
digest: sha256:636a65e9846bdff17cc4e65b0849061f783759a37aa51fb85ff6fd8ba5e68467
|
||||
generated: "2021-08-05T10:39:10.053810673+02:00"
|
||||
@@ -15,4 +15,9 @@ type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.18.0
|
||||
version: 0.31.0
|
||||
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 0.1.0
|
||||
repository: file://../common
|
||||
|
||||
Binary file not shown.
@@ -48,7 +48,7 @@ Selector labels
|
||||
*/}}
|
||||
{{- define "helm-chart.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "helm-chart.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/instance: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
@@ -68,5 +68,5 @@ Create robustName that can be used as Kubernetes resource name, and as subdomain
|
||||
\W – all but \w .
|
||||
*/}}
|
||||
{{- define "robustName" -}}
|
||||
{{ regexReplaceAll "[^0-9A-Za-z_\\.]+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" | trimPrefix "-" }}
|
||||
{{ regexReplaceAll "\\W+" . "-" | replace "_" "-" | lower | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,13 +1 @@
|
||||
{{- if .Values.vars }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.vars }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.configmap.tpl" . -}}
|
||||
|
||||
@@ -5,11 +5,25 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
{{- if .Values.gitSha }}
|
||||
annotations:
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 6 }}
|
||||
{{- $singleReplica := eq (.Values.replicas | int64) 1 }}
|
||||
{{- $strategyNotDefined := not .Values.strategy }}
|
||||
{{- if and (and .Values.volumes $singleReplica) $strategyNotDefined}}
|
||||
strategy:
|
||||
type: Recreate
|
||||
{{- end }}
|
||||
{{- if .Values.strategy }}
|
||||
strategy:
|
||||
type: {{ .Values.strategy }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -17,6 +31,12 @@ spec:
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .Values.gitRepository }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
@@ -26,6 +46,9 @@ spec:
|
||||
{{- end }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if .Values.serviceAccount }}
|
||||
serviceAccountName: {{ .Values.serviceAccount }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ template "robustName" .Release.Name }}
|
||||
securityContext: &securityContext
|
||||
@@ -38,28 +61,18 @@ spec:
|
||||
- -c
|
||||
- {{ .Values.command | quote }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
|
||||
envFrom: &envFrom
|
||||
{{- if .Values.vars }}
|
||||
- configMapRef:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- if .Values.secretEnabled }}
|
||||
- secretRef:
|
||||
name: {{ .Values.secretName | default (include "robustName" $.Release.Name) }}
|
||||
{{- end }}
|
||||
{{- if .Values.sealedSecrets }}
|
||||
- secretRef:
|
||||
name: {{ template "robustName" .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.envFromRef.tpl" . | nindent 10 }}
|
||||
ports:
|
||||
{{- if not .Values.containerPortYaml }}
|
||||
{{- if not .Values.ports }}
|
||||
- name: http
|
||||
containerPort: {{ .Values.containerPort }}
|
||||
protocol: TCP
|
||||
{{ else }}
|
||||
{{- toYaml .Values.containerPortYaml | nindent 12 }}
|
||||
{{- range .Values.ports }}
|
||||
- name: {{ .name }}
|
||||
containerPort: {{ .containerPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.probe.enabled }}
|
||||
readinessProbe:
|
||||
@@ -71,33 +84,29 @@ spec:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumeMounts: &volumeMounts
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .path }}
|
||||
readOnly: true
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: {{ .Values.livenessProbe.path }}
|
||||
port: {{ .Values.containerPort }}
|
||||
scheme: HTTP
|
||||
{{- with .Values.livenessProbe.settings }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.volumeMountsRef.tpl" . | nindent 10 }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- if .Values.debugSidecarEnabled }}
|
||||
- name: {{ template "robustName" .Release.Name }}-debug
|
||||
{{- if .Values.sidecar }}
|
||||
- name: {{ template "robustName" .Release.Name }}-sidecar
|
||||
securityContext: *securityContext
|
||||
image: {{ .Values.debugSidecar.image }}
|
||||
image: {{ .Values.sidecar.repository }}:{{ .Values.sidecar.tag }}
|
||||
{{- if .Values.sidecar.command }}
|
||||
command:
|
||||
- {{ .Values.debugSidecar.shell }}
|
||||
- {{ .Values.sidecar.shell }}
|
||||
- -c
|
||||
- {{ .Values.debugSidecar.command | quote }}
|
||||
- {{ .Values.sidecar.command | quote }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets }}
|
||||
envFrom: *envFrom
|
||||
{{- end }}
|
||||
@@ -105,24 +114,7 @@ spec:
|
||||
volumeMounts: *volumeMounts
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or (or (.Values.volumes) (.Values.sealedFileSecrets)) .Values.fileSecrets }}
|
||||
volumes:
|
||||
{{- range .Values.volumes }}
|
||||
- name: {{ .name }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.sealedFileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- range .Values.fileSecrets }}
|
||||
- name: {{ .name }}
|
||||
secret:
|
||||
secretName: {{ printf "%s-%s" $.Release.Name .name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.volumesRef.tpl" . | nindent 6 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.fileSecret.tpl" . -}}
|
||||
@@ -1,34 +1,57 @@
|
||||
{{- $labels := include "helm-chart.labels" . -}}
|
||||
|
||||
{{- with .Values.ingress -}}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
{{- if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{/* OneChart ingress snippet */}}
|
||||
{{- define "onechart.ingress" }}
|
||||
{{- $robustName := include "robustName" .root.Release.Name -}}
|
||||
{{- $resourceName := $robustName -}}
|
||||
{{- if .longName }}
|
||||
{{- $resourceName = printf "%s-%s" $robustName (include "robustName" .ingress.host) -}}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $robustName }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
name: {{ $resourceName }}
|
||||
namespace: {{ .root.Release.Namespace }}
|
||||
labels:
|
||||
{{- $labels | nindent 4 }}
|
||||
{{- with .annotations }}
|
||||
{{- include "helm-chart.labels" .root | nindent 4 }}
|
||||
{{- if or (or .root.Values.gitSha .ingress.annotations) .root.Values.gitRepository }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- if .ingress.annotations }}
|
||||
{{- toYaml .ingress.annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .root.Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .root.Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- if .root.Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .root.Values.gitRepository }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if default false .tlsEnabled }}
|
||||
{{- if .ingress.ingressClassName }}
|
||||
ingressClassName: {{ .ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
{{- if default false .ingress.tlsEnabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ template "robustName" .host | quote }}
|
||||
secretName: {{ printf "tls-%s" $robustName }}
|
||||
- {{ .ingress.host | quote }}
|
||||
secretName: {{ printf "tls-%s" $resourceName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ template "robustName" .host | quote }}
|
||||
- host: {{ .ingress.host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: {{ template "robustName" $.Release.Name }}
|
||||
servicePort: {{ $.Values.containerPort }}
|
||||
- path: "/"
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: {{ $robustName }}
|
||||
port:
|
||||
number: {{ if .root.Values.svcPort }}{{ .root.Values.svcPort }}{{ else }}{{ .root.Values.containerPort }}{{ end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.ingress }}
|
||||
{{- template "onechart.ingress" (dict "root" $ "ingress" .) }}
|
||||
{{- end }}
|
||||
|
||||
{{- range .Values.ingresses }}
|
||||
{{template "onechart.ingress" (dict "root" $ "ingress" . "longName" true) }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,16 +1 @@
|
||||
{{- range .Values.volumes }}
|
||||
{{- $robustName := include "robustName" $.Release.Name -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" $robustName .name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .accessMode | default "ReadWriteOnce" }}
|
||||
storageClassName: {{ .storageClass | default "local-path" }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .size | default "1Gi" }}
|
||||
{{- end }}
|
||||
{{- include "common.pvc.tpl" . -}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedFileSecret.tpl" . -}}
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "common.sealedSecret.tpl" . -}}
|
||||
@@ -5,12 +5,42 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "helm-chart.labels" . | nindent 4 }}
|
||||
{{- if or .Values.gitRepository .Values.gitSha }}
|
||||
annotations:
|
||||
{{- if .Values.gitRepository }}
|
||||
gimlet.io/git-repository: {{ .Values.gitRepository }}
|
||||
{{- end }}
|
||||
{{- if .Values.gitSha }}
|
||||
gimlet.io/git-sha: {{ .Values.gitSha }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ if .Values.nodePortEnabled }}NodePort{{ else }}ClusterIP{{ end }}
|
||||
type: {{ if .Values.nodePortEnabled }}NodePort{{ else if .Values.loadbalancerEnabled }}LoadBalancer{{ else }}ClusterIP{{ end }}
|
||||
{{- if .Values.stickySessions }}
|
||||
sessionAffinityConfig:
|
||||
clientIP:
|
||||
timeoutSeconds: 10800
|
||||
externalTrafficPolicy: Local
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.containerPort }}
|
||||
{{- if not .Values.ports }}
|
||||
- port: {{ if .Values.svcPort }}{{ .Values.svcPort }}{{ else }}{{ .Values.containerPort }}{{ end }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{- if .Values.nodePort }}
|
||||
nodePort: {{ .Values.nodePort }}
|
||||
{{- end }}
|
||||
{{ else }}
|
||||
{{- range .Values.ports }}
|
||||
- name: {{ .name }}
|
||||
port: {{ if .svcPort }}{{ .svcPort }}{{ else }}{{ .containerPort }}{{ end }}
|
||||
{{- if .nodePort }}
|
||||
nodePort: {{ .nodePort }}
|
||||
{{- end }}
|
||||
targetPort: {{ .name }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "helm-chart.selectorLabels" . | nindent 4 }}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should add a debug sidecar
|
||||
set:
|
||||
debugSidecarEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
@@ -0,0 +1,45 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should set a liveness probe
|
||||
set:
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
value:
|
||||
httpGet:
|
||||
path: "/"
|
||||
port: 80
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
- it: Should not set a livenessProbe
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
- it: Should tune liveness probe
|
||||
set:
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
settings:
|
||||
periodSeconds: 30
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].livenessProbe
|
||||
value:
|
||||
httpGet:
|
||||
path: "/"
|
||||
port: 80
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
+10
-19
@@ -5,35 +5,26 @@ templates:
|
||||
tests:
|
||||
- it: Should set custom ports
|
||||
set:
|
||||
containerPortYaml:
|
||||
- port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
ports:
|
||||
- containerPort: 21
|
||||
name: ftp
|
||||
- port: 3001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- containerPort: 3001
|
||||
name: passive-1
|
||||
- port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].ports
|
||||
value:
|
||||
- port: 21
|
||||
targetPort: ftp
|
||||
- name: ftp
|
||||
containerPort: 21
|
||||
protocol: TCP
|
||||
name: ftp
|
||||
- port: 3001
|
||||
targetPort: passive-1
|
||||
- name: passive-1
|
||||
containerPort: 3001
|
||||
protocol: TCP
|
||||
name: passive-1
|
||||
- port: 3002
|
||||
targetPort: passive-2
|
||||
- name: passive-2
|
||||
containerPort: 3002
|
||||
protocol: TCP
|
||||
name: passive-2
|
||||
- it: Should set default port
|
||||
asserts:
|
||||
- equal:
|
||||
@@ -1,6 +1,6 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- sealed-file-secret.yaml
|
||||
- sealedFileSecret.yaml
|
||||
tests:
|
||||
- it: Should generate a sealed secret with the file
|
||||
set: &values
|
||||
@@ -13,6 +13,11 @@ tests:
|
||||
{
|
||||
"what": "this is a fixture"
|
||||
}
|
||||
- name: deploy-key
|
||||
path: /deploy-key
|
||||
filesToMount:
|
||||
- name: deploy-key
|
||||
source: xyz
|
||||
# sourcePath: my-google-account-key.json
|
||||
asserts:
|
||||
- equal:
|
||||
@@ -21,3 +26,5 @@ tests:
|
||||
{
|
||||
"what": "this is a fixture"
|
||||
}
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
|
||||
@@ -12,15 +12,8 @@ tests:
|
||||
content:
|
||||
secretRef:
|
||||
name: release-name
|
||||
- it: Should not reference secret if secret is disabled
|
||||
- it: Should reference secret by name
|
||||
set:
|
||||
secretEnabled: false
|
||||
asserts:
|
||||
- isNull:
|
||||
path: spec.template.spec.containers[0].envFrom
|
||||
- it: Should not reference secret if secret is disabled
|
||||
set:
|
||||
secretEnabled: true
|
||||
secretName: my-custom-secret
|
||||
asserts:
|
||||
- contains:
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
tests:
|
||||
- it: Should inject a sidecar if one is specified
|
||||
set:
|
||||
sidecar:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
- it: Should inject a debug sidecar with shell and command specified
|
||||
set:
|
||||
sidecar:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
shell: "/bin/bash"
|
||||
command: "while true; do sleep 30; done;"
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.containers[1].image
|
||||
value: debian:stable-slim
|
||||
@@ -31,3 +31,46 @@ tests:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: RELEASE-NAME-data
|
||||
- it: Should recreate to avoid stuck deployments
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: Recreate
|
||||
- it: Should strategy take precedence
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
strategy: RollingUpdate
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: RollingUpdate
|
||||
- it: Should strategy be set
|
||||
set:
|
||||
strategy: Dummy
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.strategy.type
|
||||
value: Dummy
|
||||
- it: Should use the existing claim
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
existingClaim: my-static-claim
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.template.spec.volumes
|
||||
value:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: my-static-claim
|
||||
|
||||
@@ -20,10 +20,14 @@ tests:
|
||||
- host: chart-example.local
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: release-name
|
||||
servicePort: 80
|
||||
- it: Should conform to DNS names
|
||||
- path: "/"
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: release-name
|
||||
port:
|
||||
number: 80
|
||||
- it: Should pass ingress host name as is, user must sanitize it
|
||||
set:
|
||||
ingress:
|
||||
host: feature/my_branch.local
|
||||
@@ -33,25 +37,84 @@ tests:
|
||||
path: spec.tls
|
||||
value:
|
||||
- hosts:
|
||||
- feature-my-branch.local
|
||||
- feature/my_branch.local
|
||||
secretName: tls-release-name
|
||||
- equal:
|
||||
path: spec.rules
|
||||
value:
|
||||
- host: feature-my-branch.local
|
||||
- host: feature/my_branch.local
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: release-name
|
||||
servicePort: 80
|
||||
- path: "/"
|
||||
pathType: "Prefix"
|
||||
backend:
|
||||
service:
|
||||
name: release-name
|
||||
port:
|
||||
number: 80
|
||||
- it: Should set Ingress annotation
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
just/a-random: annotation
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
just/a-random: annotation
|
||||
- it: Should set ingress class
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
ingressClassName: nginx
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ingressClassName
|
||||
value: nginx
|
||||
- it: Should generate multiple ingresses
|
||||
set:
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
- it: Should generate multiple ingresses
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 3
|
||||
- it: Should have unique TLS secret names
|
||||
set:
|
||||
ingresses:
|
||||
- host: chart-example.local
|
||||
tlsEnabled: true
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
- host: another.local
|
||||
tlsEnabled: true
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.tls
|
||||
value:
|
||||
- hosts:
|
||||
- chart-example.local
|
||||
secretName: tls-release-name-chart-example-local
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- ingress.yaml
|
||||
tests:
|
||||
- it: Should use container port
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
containerPort: 1234
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].backend.service.port.number
|
||||
value: 1234
|
||||
- it: Should use service port
|
||||
set:
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
svcPort: 1234
|
||||
containerPort: 5678
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.rules[0].http.paths[0].backend.service.port.number
|
||||
value: 1234
|
||||
@@ -0,0 +1,18 @@
|
||||
suite: test service
|
||||
templates:
|
||||
- ingress.yaml
|
||||
tests:
|
||||
- it: Should set Gimlet taxonomy on Ingress
|
||||
set:
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
tlsEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
gimlet.io/git-repository: github.com/laszlocph/demo-app
|
||||
gimlet.io/git-sha: xyz
|
||||
|
||||
@@ -13,3 +13,12 @@ tests:
|
||||
- equal:
|
||||
path: spec.storageClassName
|
||||
value: default
|
||||
- it: Should not generate a claim when using existing claim
|
||||
set:
|
||||
volumes:
|
||||
- name: data
|
||||
path: /var/lib/1clickinfra/data
|
||||
existingClaim: my-static-claim
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- sealed-secret.yaml
|
||||
- sealedSecret.yaml
|
||||
tests:
|
||||
- it: Should put sealed secrets in SealedSecret
|
||||
set:
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set containerPort as default
|
||||
set:
|
||||
containerPort: 11111
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].port
|
||||
value: 11111
|
||||
- it: Should set svcPort if it is defined
|
||||
set:
|
||||
containerPort: 11111
|
||||
svcPort: 22222
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].port
|
||||
value: 22222
|
||||
- it: Should set nodePort if it is defined
|
||||
set:
|
||||
containerPort: 11111
|
||||
nodePort: 33333
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports[0].nodePort
|
||||
value: 33333
|
||||
@@ -0,0 +1,66 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set custom ports
|
||||
set:
|
||||
ports:
|
||||
- containerPort: 21
|
||||
name: ftp
|
||||
- containerPort: 3001
|
||||
name: passive-1
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- name: ftp
|
||||
port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
- name: passive-1
|
||||
port: 3001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- name: passive-2
|
||||
port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- it: Should set custom svc port
|
||||
set:
|
||||
ports:
|
||||
- containerPort: 2021
|
||||
svcPort: 21
|
||||
name: ftp
|
||||
- containerPort: 3001
|
||||
nodePort: 33001
|
||||
name: passive-1
|
||||
- containerPort: 3002
|
||||
name: passive-2
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- name: ftp
|
||||
port: 21
|
||||
targetPort: ftp
|
||||
protocol: TCP
|
||||
- name: passive-1
|
||||
port: 3001
|
||||
nodePort: 33001
|
||||
targetPort: passive-1
|
||||
protocol: TCP
|
||||
- name: passive-2
|
||||
port: 3002
|
||||
targetPort: passive-2
|
||||
protocol: TCP
|
||||
- it: Should set default port
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.ports
|
||||
value:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
@@ -0,0 +1,11 @@
|
||||
suite: test deployment
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set NodePort if flag enabled
|
||||
set:
|
||||
stickySessions: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.externalTrafficPolicy
|
||||
value: Local
|
||||
@@ -0,0 +1,14 @@
|
||||
suite: test service
|
||||
templates:
|
||||
- service.yaml
|
||||
tests:
|
||||
- it: Should set Gimlet taxonomy
|
||||
set:
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
asserts:
|
||||
- equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
gimlet.io/git-repository: github.com/laszlocph/demo-app
|
||||
gimlet.io/git-sha: xyz
|
||||
@@ -14,3 +14,10 @@ tests:
|
||||
- equal:
|
||||
path: spec.type
|
||||
value: NodePort
|
||||
- it: Should set LoadBalancer if flag enabled
|
||||
set:
|
||||
loadbalancerEnabled: true
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.type
|
||||
value: LoadBalancer
|
||||
|
||||
@@ -40,16 +40,21 @@ probe:
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
|
||||
# Before you use a liveness probe: https://srcco.de/posts/kubernetes-liveness-probes-are-dangerous.html
|
||||
livenessProbe:
|
||||
enabled: false
|
||||
path: "/"
|
||||
settings:
|
||||
initialDelaySeconds: 0
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
failureThreshold: 3
|
||||
|
||||
secretEnabled: false
|
||||
|
||||
shell: "/bin/sh"
|
||||
|
||||
debugSidecarEnabled: false
|
||||
debugSidecar:
|
||||
image: debian:stable-slim
|
||||
shell: "/bin/bash"
|
||||
command: "while true; do sleep 30; done;"
|
||||
|
||||
podDisruptionBudgetEnabled: true
|
||||
spreadAcrossNodes: false
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+332
-72
@@ -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-09-18T13:26:58.748924271Z"
|
||||
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: 6e8a391044530a7d7480bfb5842c9ba086568d4025a3ba4471b795cb565ccdb4
|
||||
name: cron-job
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/cron-job-0.2.2.tgz
|
||||
version: 0.2.2
|
||||
- apiVersion: v2
|
||||
created: "2021-09-18T13:26:58.748096055Z"
|
||||
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-09-18T13:26:58.746625627Z"
|
||||
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-09-18T13:26:58.745301201Z"
|
||||
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-09-18T13:26:58.744933494Z"
|
||||
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-09-18T13:26:58.744553787Z"
|
||||
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-09-18T13:26:58.749720986Z"
|
||||
description: Chart to create namespaces and their defaults
|
||||
digest: b23f0c98375246c074056fe54e79a0162a01c0a259e45f3380b1f2cff7ff8363
|
||||
digest: a44eb2785c8769588822a07185a736499b00d244448f52e31b0bb9757228f468
|
||||
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-09-18T13:26:58.749240877Z"
|
||||
description: Chart to create namespaces and their defaults
|
||||
digest: 88b06d78a9d1bda6f2ee15b1fad7f25399ac25c2320fb9a8dfa1a4fd14afdf6e
|
||||
name: namespaces
|
||||
@@ -49,8 +94,197 @@ 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-09-18T13:26:58.775646583Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: fa4bc2bd7ed52d9a4f51375cdab11521024004b9e6ff2f516d2b73479ce9a6cf
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.30.0.tgz
|
||||
version: 0.30.0
|
||||
- apiVersion: v2
|
||||
created: "2021-09-18T13:26:58.774015352Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: 53645774e5e984048c37f7147754ecfbae5036aa45a830ca20358a5d075aefdf
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.29.0.tgz
|
||||
version: 0.29.0
|
||||
- apiVersion: v2
|
||||
created: "2021-09-18T13:26:58.773214536Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: fa2430009485291797a86eb73a729fcc3a673dff6ba0853ae4ccdf147ae60b7c
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.28.0.tgz
|
||||
version: 0.28.0
|
||||
- apiVersion: v2
|
||||
created: "2021-09-18T13:26:58.772423421Z"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../common
|
||||
version: 0.1.0
|
||||
description: One chart to rule them all. A generic Helm chart for your application
|
||||
deployments. Because no-one can remember the Kubernetes yaml syntax.
|
||||
digest: b5521c81ca4df3eef304ebe80180a39b4c913facea11488cbc333ee0a24a68ce
|
||||
name: onechart
|
||||
type: application
|
||||
urls:
|
||||
- https://chart.onechart.dev/onechart-0.27.0.tgz
|
||||
version: 0.27.0
|
||||
- apiVersion: v2
|
||||
created: "2021-09-18T13:26:58.771432902Z"
|
||||
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-09-18T13:26:58.770341081Z"
|
||||
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-09-18T13:26:58.769017756Z"
|
||||
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-09-18T13:26:58.76818564Z"
|
||||
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-09-18T13:26:58.767526527Z"
|
||||
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-09-18T13:26:58.766751012Z"
|
||||
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-09-18T13:26:58.766168401Z"
|
||||
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-09-18T13:26:58.76556849Z"
|
||||
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-09-18T13:26:58.764996279Z"
|
||||
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-09-18T13:26:58.764410968Z"
|
||||
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-09-18T13:26:58.763816756Z"
|
||||
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-09-18T13:26:58.762941939Z"
|
||||
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-09-18T13:26:58.762285427Z"
|
||||
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 +292,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-09-18T13:26:58.761680515Z"
|
||||
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 +302,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-09-18T13:26:58.761057503Z"
|
||||
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 +312,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-09-18T13:26:58.760436291Z"
|
||||
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 +322,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-09-18T13:26:58.759286469Z"
|
||||
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 +332,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-09-18T13:26:58.758039645Z"
|
||||
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 +342,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-09-18T13:26:58.756823922Z"
|
||||
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 +352,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-09-18T13:26:58.756024007Z"
|
||||
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 +362,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-09-18T13:26:58.755236592Z"
|
||||
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 +372,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-09-18T13:26:58.754513078Z"
|
||||
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 +382,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-09-18T13:26:58.753826665Z"
|
||||
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 +392,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-09-18T13:26:58.753203353Z"
|
||||
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 +402,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-09-18T13:26:58.752658742Z"
|
||||
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 +412,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-09-18T13:26:58.752121532Z"
|
||||
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 +422,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-09-18T13:26:58.751600322Z"
|
||||
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 +432,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-09-18T13:26:58.751021711Z"
|
||||
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 +442,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-09-18T13:26:58.779534358Z"
|
||||
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 +452,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-09-18T13:26:58.779078749Z"
|
||||
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 +462,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-09-18T13:26:58.778685941Z"
|
||||
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 +472,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-09-18T13:26:58.778296834Z"
|
||||
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 +482,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-09-18T13:26:58.777896026Z"
|
||||
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 +492,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-09-18T13:26:58.777532719Z"
|
||||
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 +502,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-09-18T13:26:58.777175812Z"
|
||||
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 +512,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-09-18T13:26:58.776859606Z"
|
||||
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 +522,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-09-18T13:26:58.7765451Z"
|
||||
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 +532,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-09-18T13:26:58.776253095Z"
|
||||
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 +542,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-09-18T13:26:58.775950989Z"
|
||||
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 +552,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-09-18T13:26:58.774825767Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: fbaf6139e0ef8ad9a87cc1e41a97c7d25fdcf7ea17fa6364952f1a851a87480a
|
||||
name: onechart
|
||||
@@ -301,7 +561,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-09-18T13:26:58.774568462Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: bd6f5b1865ab9b05fc6925c163ab8045235bd2723dba31f09d5083d24322d1f8
|
||||
name: onechart
|
||||
@@ -310,7 +570,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-09-18T13:26:58.774304757Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: c79cef21eceab948144a289298cdf1e20e77a0782a883d7d65f9e709ccbbc271
|
||||
name: onechart
|
||||
@@ -319,7 +579,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-09-18T13:26:58.763216845Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: dd814ac5d08d5e6163a1b769df6803f5cb0f09d906045086dfcc5be522bb1ec3
|
||||
name: onechart
|
||||
@@ -328,7 +588,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-09-18T13:26:58.750545502Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: e46062df8053840cbfbba26c0a66a843a79f15a0b43a145ed019327513bd5098
|
||||
name: onechart
|
||||
@@ -337,7 +597,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-09-18T13:26:58.750286397Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: a7bbc8b7dcc008e89156cd1830282b7d39c0592e82ccdcefb77a25a42eca2a3d
|
||||
name: onechart
|
||||
@@ -346,7 +606,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-09-18T13:26:58.750004491Z"
|
||||
description: A generic Helm chart for your application deployments
|
||||
digest: 1ed8c0645abdae6c950526e9c5410dc056847a11700dc7def5f1c55eb7de0cd4
|
||||
name: onechart
|
||||
@@ -354,4 +614,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-09-18T13:26:58.743983876Z"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
image:
|
||||
repository: debian
|
||||
tag: stable-slim
|
||||
|
||||
schedule: "*/1 * * * *"
|
||||
command: |
|
||||
echo "I'm alive"
|
||||
shell: "/bin/sh"
|
||||
|
||||
vars:
|
||||
MY_VAR: "value"
|
||||
|
||||
volumes:
|
||||
- name: data
|
||||
path: /data
|
||||
size: 10Gi
|
||||
storageClass: default
|
||||
+9
-11
@@ -1,11 +1,9 @@
|
||||
fileSecrets:
|
||||
- name: google-account-key
|
||||
path: /google-account-key
|
||||
secrets:
|
||||
key.json: supersecret
|
||||
another.json: |
|
||||
this
|
||||
is
|
||||
a
|
||||
multiline
|
||||
secret
|
||||
ingress:
|
||||
host: chart-example.local
|
||||
ingressClassName: nginx
|
||||
|
||||
gitRepository: github.com/laszlocph/demo-app
|
||||
gitSha: xyz
|
||||
|
||||
vars:
|
||||
MY_VAR: "value"
|
||||
|
||||
Reference in New Issue
Block a user