Skip to content

Commit

Permalink
Merge pull request #102 from akash4sh/main
Browse files Browse the repository at this point in the history
Add testkube chart
  • Loading branch information
akash4sh authored Aug 26, 2023
2 parents 61b68df + 288275f commit 02306c8
Show file tree
Hide file tree
Showing 173 changed files with 25,823 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/helm_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ jobs:
helm repo add minio https://charts.min.io
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo add policy-reporter https://kyverno.github.io/policy-reporter
helm repo add kubeshop https://kubeshop.github.io/helm-charts
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
- name: Run chart-releaser
uses: helm/[email protected]
Expand Down
23 changes: 23 additions & 0 deletions charts/testkube/.helmignore
Original file line number Diff line number Diff line change
@@ -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/
21 changes: 21 additions & 0 deletions charts/testkube/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
dependencies:
- name: testkube-operator
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 12.1.31
- name: nats
repository: https://nats-io.github.io/k8s/helm/charts/
version: 0.19.1
- name: testkube-api
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- name: testkube-dashboard
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- name: global
repository: https://kubeshop.github.io/helm-charts
version: 0.1.1
digest: sha256:d5410e5461a6056eea807a91215526c50935626b707e97b380d6c9504eff887e
generated: "2023-08-26T22:37:10.912539975+05:30"
32 changes: 32 additions & 0 deletions charts/testkube/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
annotations:
artifacthub.io/changes: |
- "✨ update chart to version 1.14.2"
apiVersion: v2
dependencies:
- condition: testkube-operator.enabled
name: testkube-operator
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- condition: mongodb.enabled
name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 12.1.31
- condition: testkube-api.nats.enabled
name: nats
repository: https://nats-io.github.io/k8s/helm/charts/
version: 0.19.1
- name: testkube-api
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- condition: testkube-dashboard.enabled
name: testkube-dashboard
repository: https://kubeshop.github.io/helm-charts
version: 1.14.0
- name: global
repository: https://kubeshop.github.io/helm-charts
version: 0.1.1
description: Testkube is an open-source platform that simplifies the deployment and
management of automated testing infrastructure.
name: testkube
type: application
version: 1.0.0
347 changes: 347 additions & 0 deletions charts/testkube/README.md

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions charts/testkube/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{{ template "chart.header" . }}
{{ template "chart.description" . }}

{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}

## Install

Add `kubeshop` Helm repository and fetch latest charts info:

```sh
helm repo add kubeshop https://kubeshop.github.io/helm-charts
helm repo update
```

NOTE:
This will add CustomResourceDefinitions and RBAC roles and RoleBindings to the cluster.
This installation requires having cluster administrative rights.

```sh
helm install testkube kubeshop/testkube --create-namespace --namespace testkube
```

## Uninstall

NOTE: Uninstalling Testkube will also delete all CRDs and all resources created by Testkube.

```sh
helm delete testkube -n testkube
kubectl delete namespace testkube
```

## Migration to upgradable CRDs Helm chart

Originally Helm chart stored CRDs in a special crds/ folder. In order to make them upgradable they were moved
into the regular templates/ folder. Unfortunately Helm uses different annotations and labels for resources located
in crds/ and templates/ folders. Please run these commands to fix it:

```sh
kubectl annotate --overwrite crds executors.executor.testkube.io meta.helm.sh/release-name="testkube" meta.helm.sh/release-namespace="testkube"
kubectl annotate --overwrite crds tests.tests.testkube.io meta.helm.sh/release-name="testkube" meta.helm.sh/release-namespace="testkube"
kubectl annotate --overwrite crds scripts.tests.testkube.io meta.helm.sh/release-name="testkube" meta.helm.sh/release-namespace="testkube"
kubectl label --overwrite crds executors.executor.testkube.io app.kubernetes.io/managed-by=Helm
kubectl label --overwrite crds tests.tests.testkube.io app.kubernetes.io/managed-by=Helm
kubectl label --overwrite crds scripts.tests.testkube.io app.kubernetes.io/managed-by=Helm
```

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}

{{ template "helm-docs.versionFooter" . }}
23 changes: 23 additions & 0 deletions charts/testkube/charts/global/.helmignore
Original file line number Diff line number Diff line change
@@ -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
# global VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# global backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
22 changes: 22 additions & 0 deletions charts/testkube/charts/global/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
annotations:
category: Infrastructure
apiVersion: v2
appVersion: 0.1.1
description: A Library Helm Chart for definitions that can be shared by Helm templates
in other charts.
home: https://github.com/kubeshop/helm-charts/tree/main/charts/global
keywords:
- global
- helper
- template
- function
- testkube
maintainers:
- name: Testkube
url: https://github.com/kubeshop/testkube
name: global
sources:
- https://github.com/kubeshop/helm-charts
- https://testkube.io/
type: library
version: 0.1.1
28 changes: 28 additions & 0 deletions charts/testkube/charts/global/READme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Testkube global Library Chart

A [Library Chart](https://helm.sh/docs/topics/library_charts/#helm) for definitions that can be shared by Helm templates in other charts.
##Usage
```sh
dependencies:
- name: global
version: 1.x.x
repository: https://kubeshop.github.io/helm-charts
```

``
$ helm dependency update
``

Example of using `global` template:
```sh
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "global.names.fullname" . }}
data:
myvalue: "Hello World"
```

##Prerequisites
- Helm 3.0.0+

60 changes: 60 additions & 0 deletions charts/testkube/charts/global/templates/_capabilities.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{{/*
Return the target Kubernetes version
*/}}
{{- define "global.capabilities.kubeVersion" -}}
{{- if .Values.global }}
{{- if .Values.global.kubeVersion }}
{{- .Values.global.kubeVersion -}}
{{- else }}
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
{{- end -}}
{{- else }}
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
{{- end -}}
{{- end -}}

{/*
Return the appropriate apiVersion for deployment.
*/}}
{{- define "global.capabilities.deployment.apiVersion" -}}
{{- if semverCompare "<1.14-0" (include "global.capabilities.kubeVersion" .) -}}
{{- print "extensions/v1beta1" -}}
{{- else -}}
{{- print "apps/v1" -}}
{{- end -}}
{{- end -}}

{{/*
Return the appropriate apiVersion for RBAC resources.
*/}}
{{- define "global.capabilities.rbac.apiVersion" -}}
{{- if semverCompare "<1.17-0" (include "global.capabilities.kubeVersion" .) -}}
{{- print "rbac.authorization.k8s.io/v1beta1" -}}
{{- else -}}
{{- print "rbac.authorization.k8s.io/v1" -}}
{{- end -}}
{{- end -}}

{{/*
Return the appropriate apiVersion for ingress.
*/}}
{{- define "global.capabilities.ingress.apiVersion" -}}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
{{- print "networking.k8s.io/v1" -}}
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
{{- print "networking.k8s.io/v1" -}}
{{- else -}}
{{- print "extensions/v1" -}}
{{- end -}}
{{- end -}}

{{/*
Return the appropriate apiVersion for Horizontal Pod Autoscaler.
*/}}
{{- define "global.capabilities.hpa.apiVersion" -}}
{{- if semverCompare "<1.23-0" (include "global.capabilities.kubeVersion" .) -}}
{{- print "autoscaling/v2beta2" -}}
{{- else -}}
{{- print "autoscaling/v2" -}}
{{- end -}}
{{- end -}}
36 changes: 36 additions & 0 deletions charts/testkube/charts/global/templates/_images.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{{/*
Return the proper image name
{{ include "global.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" $) }}
*/}}
{{- define "global.images.image" -}}
{{- $registryName := .imageRoot.registry -}}
{{- $repositoryName := .imageRoot.repository -}}
{{- $separator := ":" -}}
{{- $termination := .imageRoot.tag | toString -}}
{{- if .global }}
{{- if .global.imageRegistry }}
{{- $registryName = .global.imageRegistry -}}
{{- end -}}
{{- end -}}
{{- if .imageRoot.digest }}
{{- $separator = "@" -}}
{{- $termination = .imageRoot.digest | toString -}}
{{- end -}}
{{- printf "%s/%s%s%s" $registryName $repositoryName $separator $termination -}}
{{- end -}}


{{/*
Return the proper Docker Image Registry Secret Names evaluating values as templates
{{ include "global.images.renderPullSecrets" . }}
*/}}
{{- define "global.images.renderPullSecrets" -}}
{{- $global := .Values.global }}

{{- if $global.imagePullSecrets }}
imagePullSecrets:
{{- range $global.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
{{- end -}}
15 changes: 15 additions & 0 deletions charts/testkube/charts/global/templates/_labels.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "global.version.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Kubernetes standard labels
*/}}
{{- define "global.labels.standard" -}}
helm.sh/chart: {{ include "global.version.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}

12 changes: 12 additions & 0 deletions charts/testkube/charts/global/templates/_tplvalues.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{/*
Renders a value that contains template.
Usage:
{{ include "global.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }}
*/}}
{{- define "global.tplvalues.render" -}}
{{- if typeIs "string" .value }}
{{- tpl .value .context }}
{{- else }}
{{- tpl (.value | toYaml) .context }}
{{- end }}
{{- end -}}
5 changes: 5 additions & 0 deletions charts/testkube/charts/global/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Default values for testkube/global.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

exampleValue: global-chart
21 changes: 21 additions & 0 deletions charts/testkube/charts/mongodb/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj
6 changes: 6 additions & 0 deletions charts/testkube/charts/mongodb/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.16.1
digest: sha256:bcc717c6a14262fac51e6434020ee5dd6148b864fe6cff6266c1d481df4a0c91
generated: "2022-07-19T14:33:07.571403803Z"
Loading

0 comments on commit 02306c8

Please sign in to comment.