Skip to content

Helm

Helm #143

Workflow file for this run

# Copyright 2023 The Atlas Operator Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Helm
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
helm-test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: start minikube
id: minikube
uses: medyagh/setup-minikube@master
- uses: azure/setup-helm@v1
- name: pre-apply test resources
run: |
kubectl apply config/integration/env
- name: install atlas-operator
run: |
helm install atlas-operator charts/atlas-operator --wait \
--set image.pullPolicy=Always \
--set env.normal.NORMAL_TEST=true \
--set env.secret.SECRET_TEST=true \
--set envSecretRef="operator-env-secret" \
--set envConfigMapRef="operator-env-configmap"
- name: apply test resources
run: |
kubectl apply -k config/integration
- name: wait for test resources
run: |
if ! kubectl wait --for=condition=ready --timeout=120s atlasschemas --all; then
kubectl describe atlasschemas
kubectl describe pods -l atlasgo.io/engine=postgres
kubectl describe pods -l atlasgo.io/engine=mysql
kubectl describe deployments
exit 1
fi
- name: check env
run: |
# Find the operator pod
OPERATOR=$(kubectl get pods -n atlas-operator-system -o jsonpath='{.items[0].metadata.name}')
# Extract the env from the operator pod
kubectl exec -n atlas-operator-system $OPERATOR -- env | grep NORMAL_TEST
kubectl exec -n atlas-operator-system $OPERATOR -- env | grep SECRET_TEST
kubectl exec -n atlas-operator-system $OPERATOR -- env | grep CONFIGMAP_REF_TEST
kubectl exec -n atlas-operator-system $OPERATOR -- env | grep SECRET_REF_TEST
helm-push:
name: Push to ghcr.io
needs: [helm-test]
if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: charts/
steps:
- uses: actions/checkout@v3
- uses: azure/setup-helm@v3
- name: get version
id: version
run: |
CHART_VERSION=$(helm show chart atlas-operator | grep '^version' | awk '{print $2}')
echo "::set-output name=CHART_VERSION::$CHART_VERSION"
- name: helm package
run: helm package atlas-operator
- name: login to gcr using helm
run: |
echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io/ariga/atlas-operator --username ${{ github.repository_owner }} --password-stdin
- name: helm push
run: |
helm push atlas-operator-${{ steps.version.outputs.CHART_VERSION }}.tgz oci://ghcr.io/ariga/charts