-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added
Chart Testing
GitHub Action, to Lint and Install Chart on PR (#7
- Loading branch information
1 parent
79b443d
commit 6f844b7
Showing
8 changed files
with
449 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
name: Test Charts | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths: | ||
- "charts/**" | ||
|
||
permissions: | ||
contents: read | ||
|
||
env: | ||
HELM_DOCS_VERSION: "1.13.1" | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
lint-chart: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Helm | ||
uses: azure/setup-helm@v3 | ||
with: | ||
version: v3.6.3 | ||
|
||
- name: Set up python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.7 | ||
|
||
- name: Set up chart-testing | ||
uses: helm/[email protected] | ||
|
||
- name: Run chart-testing (lint) | ||
run: ct lint --config charts/ct-lint.yaml | ||
|
||
lint-docs: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
packages: write | ||
id-token: write | ||
needs: lint-chart | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: install helm-docs | ||
run: | | ||
cd /tmp | ||
wget https://github.com/norwoodj/helm-docs/releases/download/v${{env.HELM_DOCS_VERSION}}/helm-docs_${{env.HELM_DOCS_VERSION}}_Linux_x86_64.tar.gz | ||
tar -xvf helm-docs_${{env.HELM_DOCS_VERSION}}_Linux_x86_64.tar.gz | ||
sudo mv helm-docs /usr/local/sbin | ||
- name: Run helm-docs | ||
run: | | ||
helm-docs -t README.md.gotmpl -o README.md -b for-the-badge | ||
kubeval-chart: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
packages: write | ||
id-token: write | ||
needs: | ||
- lint-chart | ||
- lint-docs | ||
strategy: | ||
matrix: | ||
k8s: | ||
# from https://github.com/yannh/kubernetes-json-schema | ||
- v1.27.6 | ||
- v1.28.3 | ||
- v1.29.2 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Helm | ||
uses: azure/setup-helm@v3 | ||
with: | ||
version: v3.6.3 | ||
|
||
- name: Run helm-template | ||
run: | | ||
mkdir manifests | ||
for dir in charts/*/ | ||
do | ||
helm template "${dir}" > "manifests/$(basename $dir).yaml" | ||
done | ||
- name: Run kubeval | ||
uses: instrumenta/kubeval-action@master | ||
with: | ||
files: "manifests" | ||
version: ${{ matrix.k8s }} | ||
|
||
install-chart: | ||
name: install-chart | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
packages: write | ||
id-token: write | ||
needs: | ||
- lint-chart | ||
- lint-docs | ||
- kubeval-chart | ||
strategy: | ||
matrix: | ||
k8s: | ||
# from https://hub.docker.com/r/kindest/node/tags | ||
- v1.27.3 # renovate: kindest | ||
- v1.28.0 # renovate: kindest | ||
- v1.29.2 # renovate: kindest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Create kind ${{ matrix.k8s }} cluster | ||
uses: helm/[email protected] | ||
with: | ||
node_image: kindest/node:${{ matrix.k8s }} | ||
version: v0.20.0 | ||
|
||
- name: Set up chart-testing | ||
uses: helm/[email protected] | ||
|
||
- name: Run chart install | ||
run: ct install --config charts/ct-lint.yaml | ||
|
||
# Catch-all required check for test matrix | ||
test-success: | ||
needs: | ||
- lint-chart | ||
- lint-docs | ||
- kubeval-chart | ||
- install-chart | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
packages: write | ||
id-token: write | ||
timeout-minutes: 1 | ||
if: always() | ||
steps: | ||
- name: Fail for failed or cancelled lint-chart | ||
if: | | ||
needs.lint-chart.result == 'failure' || | ||
needs.lint-chart.result == 'cancelled' | ||
run: exit 1 | ||
- name: Fail for failed or cancelled lint-docs | ||
if: | | ||
needs.lint-docs.result == 'failure' || | ||
needs.lint-docs.result == 'cancelled' | ||
run: exit 1 | ||
- name: Fail for failed or cancelled kubeval-chart | ||
if: | | ||
needs.kubeval-chart.result == 'failure' || | ||
needs.kubeval-chart.result == 'cancelled' | ||
run: exit 1 | ||
- name: Fail for failed or cancelled install-chart | ||
if: | | ||
needs.install-chart.result == 'failure' || | ||
needs.install-chart.result == 'cancelled' | ||
run: exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
## Reference: https://github.com/helm/chart-testing/blob/master/doc/ct_lint-and-install.md | ||
# Don't add the 'debug' attribute, otherwise the workflow won't work anymore | ||
# Only Used for the CT Lint Stage | ||
remote: origin | ||
target-branch: main | ||
chart-dirs: | ||
- charts | ||
validate-chart-schema: true | ||
validate-chart-values: true | ||
validate-maintainers: true | ||
validate-yaml: true | ||
exclude-deprecated: true | ||
excluded-charts: [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# SurrealDB Helm Chart | ||
|
||
![Version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) | ||
|
||
SurrealDB is the ultimate cloud database for tomorrow's applications. | ||
|
||
## Introduction | ||
|
||
This chart facilitates the deployment of [SurrealDB](https://surrealdb.com/docs/surrealdb/) on Kubernetes clusters. | ||
|
||
## Maintainers | ||
|
||
| Name | Email | Url | | ||
| ---- | ------ | --- | | ||
| surrealdb | | <https://github.com/surrealdb> | | ||
|
||
## Usage | ||
|
||
Read the Kubernetes Deployment guides in https://surrealdb.com/docs/deployment | ||
|
||
## Overrides | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| fullnameOverride | string | `""` | String to fully override `"surrealdb"` | | ||
| nameOverride | string | `""` | Provide a name in place of `surrealdb` | | ||
|
||
## General parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| affinity | object | `{}` | Assign custom [affinity] rules to the deployment | | ||
| args | list | `["start"]` | Command line arguments to pass to SurrealDB | | ||
| nodeSelector | object | `{}` | [Node selector] | | ||
| podAnnotations | object | `{}` | Annotations to be added to SurrealDB pods | | ||
| podSecurityContext | object | `{}` (See [values.yaml]) | Toggle and define pod-level security context. | | ||
| replicaCount | int | `1` | The number of SurrealDB pods to run | | ||
| resources | object | `{}` | Resource limits and requests | | ||
| securityContext | object | `{}` (See [values.yaml]) | SurrealDB container-level security context | | ||
| tolerations | list | `[]` | [Tolerations] for use with node taints | | ||
|
||
## SurrealDB parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| surrealdb.auth | string | `"true"` | Authentication enabled | | ||
| surrealdb.log | string | `"info"` | Log configuration | | ||
| surrealdb.path | string | `"memory"` | path: tikv://tikv-pd:2379 | | ||
| surrealdb.port | int | `8000` | SurrealDB container port | | ||
|
||
## Image parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for SurrealDB | | ||
| image.repository | string | `"surrealdb/surrealdb"` | Repository to use for SurrealDB | | ||
| image.tag | string | `""` (defaults to chart appVersion) | Tag to use for SurrealDB | | ||
| imagePullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry | | ||
|
||
## Service parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| service.annotations | object | `{}` | Service annotations | | ||
| service.port | int | `8000` | Service port | | ||
| service.targetPort | string | `"http"` | Target container port | | ||
| service.type | string | `"ClusterIP"` | Service type | | ||
|
||
## Service account parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| serviceAccount.annotations | object | `{}` | Annotations to add to the service account | | ||
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | | ||
| serviceAccount.name | string | `""` (defaults to the fullname template) | The name of the service account to use. | | ||
|
||
## Ingress parameters | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| ingress.annotations | object | `{}` | Additional ingress annotations | | ||
| ingress.className | string | `""` | Defines which ingress controller will implement the resource | | ||
| ingress.defaultBackend | bool | `true` | Create default backend | | ||
| ingress.enabled | bool | `false` | Enable an ingress resource | | ||
| ingress.hosts | list | `[]` (See [values.yaml]) | List of hosts to be covered by ingress record | | ||
| ingress.tls | list | `[]` (See [values.yaml]) | List of TLS configuration | | ||
|
||
---------------------------------------------- | ||
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) |
Oops, something went wrong.