Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EVEREST-1513 | PR checks for Everest helm chart #405

Merged
merged 27 commits into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions .github/workflows/everest-pr-checks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Everest PR checks
on:
pull_request:
paths:
- 'charts/everest/**'
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.15.4

- uses: azure/setup-kubectl@v4

- name: Set up chart-testing
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --config .github/ct.yaml)
if [[ -n "$changed" ]]; then
echo "changed=true" >> $GITHUB_OUTPUT
fi

- name: Run chart-testing (lint)
run: |
# Ensure common sub-chart is linted and has version increment
ct lint --config .github/ct.yaml --lint-conf .github/lintconf.yaml --chart-dirs=charts/everest/charts --excluded-charts=everest-db-namespace

# Ensure main chart is linted, skip version increment check
ct lint --config .github/ct.yaml --lint-conf .github/lintconf.yaml --check-version-increment=false

# Ensure all sub-charts are linted, skip version increment check
ct lint --config .github/ct.yaml --lint-conf .github/lintconf.yaml --chart-dirs=charts/everest/charts --check-version-increment=false

- name: Create kind cluster
uses: helm/[email protected]
# Only build a kind cluster if there are chart changes to test.
if: steps.list-changed.outputs.changed == 'true'

- name: Basic tests
run: |
# Install the chart
helm install everest-core ./charts/everest --create-namespace --namespace everest-system

# Wait for system components
kubectl wait --for=condition=available --timeout=60s deployment/percona-everest -n everest-system
kubectl wait --for=condition=available --timeout=60s deployment/everest-operator -n everest-system

# Provision DB namespace
kubectl create ns everest
kubectl label ns everest app.kubernetes.io/managed-by=everest
helm install everest ./charts/everest/charts/everest-db-namespace --namespace everest

# Ensure operators are installed
subs=$(kubectl -n everest get subscription -o jsonpath='{.items[*].metadata.name}')
for sub in $subs
do
echo "Waiting for InstallPlan to be created for Subscription $sub"
kubectl wait --for=jsonpath='.status.installplan.name' sub/$sub -n everest --timeout=600s

ip=$(kubectl -n everest get sub $sub -o jsonpath='{.status.installplan.name}')
echo "InstallPlan $ip created for Subscription $sub"

echo "Waiting for InstallPlan to be complete $ip"
kubectl wait --for=jsonpath='.status.phase'=Complete installplan/$ip -n everest --timeout=600s

csv=$(kubectl get sub $sub -n everest -o jsonpath='{.status.installedCSV}')
echo "Waiting for CSV $csv to succeed"
kubectl wait --for=jsonpath='.status.phase'=Succeeded csv/$csv -n everest --timeout=600s
done

# Uninstall
helm uninstall everest -n everest
kubectl delete ns everest
kubectl wait --for=delete namespace/everest --timeout=120s
helm uninstall everest-core -n everest-system
kubectl delete ns everest-system
kubectl wait --for=delete namespace/everest-system --timeout=120s

- name: Build chart package
run: |
changed=$(ct list-changed --config .github/ct.yaml)
[ $(echo -n "$changed" | grep -c '^') == 1 ] && helm package $changed || echo "skipping package"

- name: Upload helm chart
uses: actions/upload-artifact@v4
with:
path: ./*.tgz
retention-days: 30
if-no-files-found: ignore

6 changes: 3 additions & 3 deletions charts/everest/Chart.lock
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
dependencies:
- name: common
repository: file://charts/common
version: 0.0.1
version: 0.0.2
- name: everest-db-namespace
repository: file://charts/everest-db-namespace
version: 0.0.0
digest: sha256:c41bc5832c4bf3829a3ceabb7b3fcd2461035cc66986aa0acea8e7b366a6e036
generated: "2024-10-21T20:53:46.621274+05:30"
digest: sha256:c640ee1595ced2f8d4024f9f37b38d6ca685bc4edba9d451f9bcd56edc22ee23
generated: "2024-10-31T11:35:48.801214+05:30"
2 changes: 1 addition & 1 deletion charts/everest/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ maintainers:
email: [email protected]
dependencies:
- name: common
version: 0.0.1
version: 0.0.*
repository: "file://charts/common"
# This is not really a dependency, but we define it as one so that we're
# able to conditionally disable rendering these manifests along with the core chart manifests.
Expand Down
13 changes: 11 additions & 2 deletions charts/everest/charts/common/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,14 @@ apiVersion: v2
name: common
description: A library chart for Everest containing common resources.
type: library
version: 0.0.1
appVersion: "0.0.1"
version: 0.0.2
appVersion: "0.0.2"
maintainers:
- name: mayankshah1607
email: [email protected]
- name: oksana-grishchenko
email: [email protected]
- name: recharte
email: [email protected]
- name: michal-kralik
email: [email protected]
6 changes: 3 additions & 3 deletions charts/everest/charts/everest-db-namespace/Chart.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: file://../common
version: 0.0.1
digest: sha256:a25c79b74ec6d89ca5c732e4222f8726ed02aa6a4a21f376afc499e53696c9b5
generated: "2024-10-05T15:02:38.315401+05:30"
version: 0.0.2
digest: sha256:e26bbcf7da416e9ea599f57a116c90e4a8b38bb7293945ef17a4f5243043cd99
generated: "2024-10-31T11:35:45.12716+05:30"
11 changes: 10 additions & 1 deletion charts/everest/charts/everest-db-namespace/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,14 @@ version: 0.0.0
appVersion: 0.0.0
dependencies:
- name: common
version: 0.0.1
version: 0.0.*
repository: "file://../common"
maintainers:
- name: mayankshah1607
email: [email protected]
- name: oksana-grishchenko
email: [email protected]
- name: recharte
email: [email protected]
- name: michal-kralik
email: [email protected]
Loading