forked from mastodon/chart
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* helm: Fix consistent list indentation * helm: Add helm lint and helm template tests * helm: Add helm template --validate test * helm: Add helm install test
- Loading branch information
1 parent
92f1734
commit d74c787
Showing
9 changed files
with
213 additions
and
37 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,138 @@ | ||
# This is a GitHub workflow defining a set of jobs with a set of steps. | ||
# ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | ||
# | ||
name: Test chart | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- "chart/**" | ||
- "!**.md" | ||
- ".github/workflows/test-chart.yml" | ||
push: | ||
paths: | ||
- "chart/**" | ||
- "!**.md" | ||
- ".github/workflows/test-chart.yml" | ||
branches-ignore: | ||
- "dependabot/**" | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
|
||
defaults: | ||
run: | ||
working-directory: chart | ||
|
||
jobs: | ||
lint-templates: | ||
runs-on: ubuntu-22.04 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.x" | ||
|
||
- name: Install dependencies (yamllint) | ||
run: pip install yamllint | ||
|
||
- run: helm dependency update | ||
|
||
- name: helm lint | ||
run: | | ||
helm lint . \ | ||
--values dev-values.yaml | ||
- name: helm template | ||
run: | | ||
helm template . \ | ||
--values dev-values.yaml \ | ||
--output-dir rendered-templates | ||
- name: yamllint (only on templates we manage) | ||
run: | | ||
rm -rf rendered-templates/mastodon/charts | ||
yamllint rendered-templates \ | ||
--config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}" | ||
# This job helps us validate that rendered templates are valid k8s resources | ||
# against a k8s api-server, via "helm template --validate", but also that a | ||
# basic configuration can be used to successfully startup mastodon. | ||
# | ||
test-install: | ||
runs-on: ubuntu-22.04 | ||
timeout-minutes: 15 | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
# k3s-channel reference: https://update.k3s.io/v1-release/channels | ||
- k3s-channel: latest | ||
- k3s-channel: stable | ||
|
||
# This represents the oldest configuration we test against. | ||
# | ||
# The k8s version chosen is based on the oldest still supported k8s | ||
# version among two managed k8s services, GKE, EKS. | ||
# - GKE: https://endoflife.date/google-kubernetes-engine | ||
# - EKS: https://endoflife.date/amazon-eks | ||
# | ||
# The helm client's version can influence what helper functions is | ||
# available for use in the templates, currently we need v3.6.0 or | ||
# higher. | ||
# | ||
- k3s-channel: v1.21 | ||
helm-version: v3.6.0 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
# This action starts a k8s cluster with NetworkPolicy enforcement and | ||
# installs both kubectl and helm. | ||
# | ||
# ref: https://github.com/jupyterhub/action-k3s-helm#readme | ||
# | ||
- uses: jupyterhub/action-k3s-helm@v3 | ||
with: | ||
k3s-channel: ${{ matrix.k3s-channel }} | ||
helm-version: ${{ matrix.helm-version }} | ||
metrics-enabled: false | ||
traefik-enabled: false | ||
docker-enabled: false | ||
|
||
- run: helm dependency update | ||
|
||
# Validate rendered helm templates against the k8s api-server | ||
- name: helm template --validate | ||
run: | | ||
helm template --validate mastodon . \ | ||
--values dev-values.yaml | ||
- name: helm install | ||
run: | | ||
helm install mastodon . \ | ||
--values dev-values.yaml \ | ||
--timeout 10m | ||
# This actions provides a report about the state of the k8s cluster, | ||
# providing logs etc on anything that has failed and workloads marked as | ||
# important. | ||
# | ||
# ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme | ||
# | ||
- name: Kubernetes namespace report | ||
uses: jupyterhub/action-k8s-namespace-report@v1 | ||
if: always() | ||
with: | ||
important-workloads: >- | ||
deploy/mastodon-sidekiq | ||
deploy/mastodon-streaming | ||
deploy/mastodon-web | ||
job/mastodon-assets-precompile | ||
job/mastodon-chewy-upgrade | ||
job/mastodon-create-admin | ||
job/mastodon-db-migrate |
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
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,25 @@ | ||
# Chart values used for testing the Helm chart. | ||
# | ||
mastodon: | ||
secrets: | ||
secret_key_base: dummy-secret_key_base | ||
otp_secret: dummy-otp_secret | ||
vapid: | ||
private_key: dummy-vapid-private_key | ||
public_key: dummy-vapid-public_key | ||
|
||
# ref: https://github.com/bitnami/charts/tree/main/bitnami/redis#parameters | ||
redis: | ||
replica: | ||
replicaCount: 1 | ||
|
||
# ref: https://github.com/bitnami/charts/tree/main/bitnami/elasticsearch#parameters | ||
elasticsearch: | ||
master: | ||
replicaCount: 1 | ||
data: | ||
replicaCount: 1 | ||
coordinating: | ||
replicaCount: 1 | ||
ingest: | ||
replicaCount: 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
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
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