Add smoke tests to main
This commit is contained in:
parent
3a87df91a0
commit
d54f6ca089
33
.github/workflows/main.yaml
vendored
Normal file
33
.github/workflows/main.yaml
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
name: test main
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.head_ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
uses: ./.github/workflows/lint.yaml
|
||||||
|
|
||||||
|
sync_images:
|
||||||
|
needs: [lint]
|
||||||
|
uses: ./.github/workflows/sync-images.yaml
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
ensure_capi_images:
|
||||||
|
needs: [lint]
|
||||||
|
uses: ./.github/workflows/ensure-capi-images.yaml
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: [sync_images, ensure_capi_images]
|
||||||
|
uses: ./.github/workflows/test.yaml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
# Pass the images as JSON
|
||||||
|
images: ${{ toJSON(needs.ensure_capi_images.outputs) }}
|
||||||
|
# Only run the smoke tests on main
|
||||||
|
tests-full: false
|
3
.github/workflows/pr.yaml
vendored
3
.github/workflows/pr.yaml
vendored
@ -34,4 +34,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
# Pass the images as JSON
|
# Pass the images as JSON
|
||||||
images: ${{ toJSON(needs.ensure_capi_images.outputs) }}
|
images: ${{ toJSON(needs.ensure_capi_images.outputs) }}
|
||||||
|
# If the PR is in draft, just run smoke tests
|
||||||
|
# If the PR is in review, run the full test suite
|
||||||
|
tests-full: ${{ !github.event.pull_request.draft }}
|
||||||
if: github.repository == 'stackhpc/capi-helm-charts'
|
if: github.repository == 'stackhpc/capi-helm-charts'
|
||||||
|
31
.github/workflows/test.yaml
vendored
31
.github/workflows/test.yaml
vendored
@ -6,6 +6,11 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
description: JSON-encoded dictionary of images and versions
|
description: JSON-encoded dictionary of images and versions
|
||||||
required: true
|
required: true
|
||||||
|
tests-full:
|
||||||
|
type: boolean
|
||||||
|
description: Indicates whether to run the full test suite or just a smoke test
|
||||||
|
required: true
|
||||||
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
HELM_VERSION: v3.11.3
|
HELM_VERSION: v3.11.3
|
||||||
@ -160,7 +165,7 @@ jobs:
|
|||||||
name: test-group1
|
name: test-group1
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# On draft PRs, just run the smoke test on a clean deployment of the latest supported version
|
# For the smoke test, we do a clean deployment of the latest supported version
|
||||||
#####
|
#####
|
||||||
|
|
||||||
- name: Test clean Kubernetes 1.27 deployment
|
- name: Test clean Kubernetes 1.27 deployment
|
||||||
@ -170,14 +175,14 @@ jobs:
|
|||||||
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
||||||
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
||||||
sonobuoy-upload: "yes"
|
sonobuoy-upload: "yes"
|
||||||
if: ${{ github.event.pull_request.draft }}
|
if: ${{ !inputs.tests-full }}
|
||||||
|
|
||||||
- name: Delete Kubernetes 1.27 deployment
|
- name: Delete Kubernetes 1.27 deployment
|
||||||
run: helm delete ci-${{ github.run_id }}-kube-latest --wait
|
run: helm delete ci-${{ github.run_id }}-kube-latest --wait
|
||||||
if: ${{ github.event.pull_request.draft && always() }}
|
if: ${{ !inputs.tests-full && always() }}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# On a reviewable PR, test that we can upgrade from a cluster deployed using the latest tag
|
# On a full test, first test that we can upgrade from a cluster deployed using the latest tag
|
||||||
#####
|
#####
|
||||||
|
|
||||||
- name: Get latest tag
|
- name: Get latest tag
|
||||||
@ -186,7 +191,7 @@ jobs:
|
|||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
TAG_NAME="$(curl -fsSL "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases/latest" | jq -r '.tag_name')"
|
TAG_NAME="$(curl -fsSL "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases/latest" | jq -r '.tag_name')"
|
||||||
echo "tag-name=${TAG_NAME}" >> "$GITHUB_OUTPUT"
|
echo "tag-name=${TAG_NAME}" >> "$GITHUB_OUTPUT"
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Deploy Kubernetes 1.27 with latest tag for chart upgrade test
|
- name: Deploy Kubernetes 1.27 with latest tag for chart upgrade test
|
||||||
uses: ./.github/actions/upgrade-and-test
|
uses: ./.github/actions/upgrade-and-test
|
||||||
@ -195,7 +200,7 @@ jobs:
|
|||||||
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
||||||
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
||||||
chart-version: ${{ steps.latest-tag.outputs.tag-name }}
|
chart-version: ${{ steps.latest-tag.outputs.tag-name }}
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Upgrade to current chart
|
- name: Upgrade to current chart
|
||||||
uses: ./.github/actions/upgrade-and-test
|
uses: ./.github/actions/upgrade-and-test
|
||||||
@ -203,14 +208,14 @@ jobs:
|
|||||||
name: ci-${{ github.run_id }}-chart-upgrade
|
name: ci-${{ github.run_id }}-chart-upgrade
|
||||||
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
kubernetes-version: ${{ fromJson(inputs.images).kube-1-27-version }}
|
||||||
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Delete chart upgrade deployment
|
- name: Delete chart upgrade deployment
|
||||||
run: helm delete ci-${{ github.run_id }}-chart-upgrade --wait
|
run: helm delete ci-${{ github.run_id }}-chart-upgrade --wait
|
||||||
if: ${{ !github.event.pull_request.draft && always() }}
|
if: ${{ inputs.tests-full && always() }}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# On a reviewable PR, run a full upgrade test
|
# On a full test, next run a full upgrade test
|
||||||
# This will run a sonobuoy smoke test after every step with a full test at the end
|
# This will run a sonobuoy smoke test after every step with a full test at the end
|
||||||
#####
|
#####
|
||||||
|
|
||||||
@ -220,7 +225,7 @@ jobs:
|
|||||||
name: ci-${{ github.run_id }}-kube-upgrade
|
name: ci-${{ github.run_id }}-kube-upgrade
|
||||||
kubernetes-version: ${{ fromJson(inputs.images).kube-1-25-version }}
|
kubernetes-version: ${{ fromJson(inputs.images).kube-1-25-version }}
|
||||||
image-id: ${{ fromJson(inputs.images).kube-1-25-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-25-image }}
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Upgrade to Kubernetes 1.26
|
- name: Upgrade to Kubernetes 1.26
|
||||||
uses: ./.github/actions/upgrade-and-test
|
uses: ./.github/actions/upgrade-and-test
|
||||||
@ -228,7 +233,7 @@ jobs:
|
|||||||
name: ci-${{ github.run_id }}-kube-upgrade
|
name: ci-${{ github.run_id }}-kube-upgrade
|
||||||
kubernetes-version: ${{ fromJson(inputs.images).kube-1-26-version }}
|
kubernetes-version: ${{ fromJson(inputs.images).kube-1-26-version }}
|
||||||
image-id: ${{ fromJson(inputs.images).kube-1-26-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-26-image }}
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Upgrade to Kubernetes 1.27
|
- name: Upgrade to Kubernetes 1.27
|
||||||
uses: ./.github/actions/upgrade-and-test
|
uses: ./.github/actions/upgrade-and-test
|
||||||
@ -238,11 +243,11 @@ jobs:
|
|||||||
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
image-id: ${{ fromJson(inputs.images).kube-1-27-image }}
|
||||||
sonobuoy-mode: full
|
sonobuoy-mode: full
|
||||||
sonobuoy-upload: "yes"
|
sonobuoy-upload: "yes"
|
||||||
if: ${{ !github.event.pull_request.draft }}
|
if: ${{ inputs.tests-full }}
|
||||||
|
|
||||||
- name: Delete Kubernetes upgrade deployment
|
- name: Delete Kubernetes upgrade deployment
|
||||||
run: helm delete ci-${{ github.run_id }}-kube-upgrade --wait
|
run: helm delete ci-${{ github.run_id }}-kube-upgrade --wait
|
||||||
if: ${{ !github.event.pull_request.draft && always() }}
|
if: ${{ inputs.tests-full && always() }}
|
||||||
|
|
||||||
- name: Output controller logs
|
- name: Output controller logs
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
15
README.md
15
README.md
@ -1,7 +1,6 @@
|
|||||||
# capi-helm-charts
|
# capi-helm-charts
|
||||||
![Lint](https://github.com/stackhpc/capi-helm-charts/actions/workflows/lint.yaml/badge.svg?branch=main)
|
![Test](https://github.com/stackhpc/capi-helm-charts/actions/workflows/main.yaml/badge.svg?branch=main)
|
||||||
![Test Helm](https://github.com/stackhpc/capi-helm-charts/actions/workflows/install.yaml/badge.svg?branch=main)
|
![Publish](https://github.com/stackhpc/capi-helm-charts/actions/workflows/publish-artifacts.yaml/badge.svg?branch=main)
|
||||||
![Publish Charts](https://github.com/stackhpc/capi-helm-charts/actions/workflows/publish-artifacts.yaml/badge.svg?branch=main)
|
|
||||||
|
|
||||||
This repository contains [Helm charts](https://helm.sh/) for deploying [Kubernetes](https://kubernetes.io/)
|
This repository contains [Helm charts](https://helm.sh/) for deploying [Kubernetes](https://kubernetes.io/)
|
||||||
clusters using [Cluster API](https://cluster-api.sigs.k8s.io/).
|
clusters using [Cluster API](https://cluster-api.sigs.k8s.io/).
|
||||||
@ -19,16 +18,6 @@ To list the available versions for the charts:
|
|||||||
helm search repo capi --devel --versions
|
helm search repo capi --devel --versions
|
||||||
```
|
```
|
||||||
|
|
||||||
> **WARNING**
|
|
||||||
>
|
|
||||||
> The `openstack-cluster` chart depends on features in
|
|
||||||
> [cluster-api-provider-openstack](https://github.com/kubernetes-sigs/cluster-api-provider-openstack)
|
|
||||||
> that are not yet in a release.
|
|
||||||
>
|
|
||||||
> StackHPC maintain custom builds of `cluster-api-provider-openstack` for use with these charts.
|
|
||||||
> You can find these in [the StackHPC fork](https://github.com/stackhpc/cluster-api-provider-openstack/releases)
|
|
||||||
> of `cluster-api-provider-openstack`.
|
|
||||||
|
|
||||||
Currently, the following charts are available:
|
Currently, the following charts are available:
|
||||||
|
|
||||||
| Chart | Description |
|
| Chart | Description |
|
||||||
|
Loading…
Reference in New Issue
Block a user