Skip to content

operator-3.102.0

operator-3.102.0 #290

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches: [main]
paths:
- "**.yaml"
- "**.tpl"
pull_request:
branches: [main]
paths:
- "**.yaml"
- "**.tpl"
jobs:
sanity:
runs-on: ubuntu-latest
name: sanity render chart
steps:
- uses: actions/checkout@v4
- uses: azure/[email protected]
- run: helm template mirrord-operator --set license.key=secret --debug
operator-install:
runs-on: ubuntu-latest
name: install chart
steps:
- uses: actions/checkout@v4
- name: start minikube
uses: medyagh/setup-minikube@master
with:
container-runtime: ${{ inputs.container-runtime }}
cpus: 'max'
memory: '4gb'
- uses: azure/[email protected]
- name: prepare custom namespaces for `test_values/operator_rolenamespaces.yaml`
run: kubectl create namespace namespace1 && kubectl create namespace namespace2
- name: check installing the chart with various `values` yamls
run: ./test_values_files.sh
operator-install-and-use:
runs-on: ubuntu-latest
name: install chart and run session
steps:
- uses: actions/checkout@v4
- name: start minikube
uses: medyagh/setup-minikube@master
with:
container-runtime: ${{ inputs.container-runtime }}
cpus: 'max'
memory: '4gb'
- uses: azure/[email protected]
- name: prepare operator license
env:
MIRRORD_OPERATOR_LICENSE: ${{ secrets.MIRRORD_OPERATOR_LICENSE }}
run: echo $MIRRORD_OPERATOR_LICENSE | base64 --decode > license.pem
- name: print license file hash
run: cat license.pem | sha256sum
- name: install the chart
run: |
helm install mirrord-operator \
--set license.file.data."license\\.pem"="$(cat license.pem)" \
--set operator.disableTelemetries=true \
--set operator.podAnnotations."annotation\.metalbear\.co/name"="operator" \
--set operator.podAnnotations."annotation\.metalbear\.co/version"="latest" \
--set operator.podLabels."label\.metalbear\.co/name"="operator" \
--set operator.podLabels."label\.metalbear\.co/version"="latest" \
./mirrord-operator --wait
- name: wait for the operator status
uses: nick-fields/retry@v3
with:
timeout_seconds: 10
max_attempts: 5
retry_wait_seconds: 1
command: kubectl get mirrordoperators.operator.metalbear.co operator -o yaml
- name: download latest mirrord binary
run: curl -LO https://github.com/metalbear-co/mirrord/releases/latest/download/mirrord_linux_x86_64 && chmod +x ./mirrord_linux_x86_64
- name: run dummy mirrord session
run: MIRRORD_OPERATOR_ENABLE=true MIRRORD_TELEMETRY=false ./mirrord_linux_x86_64 exec -- echo whatever
- name: get operator logs
if: failure()
run: kubectl logs -n mirrord deployment/mirrord-operator
ci-success:
runs-on: ubuntu-latest
name: ci-success
# We want this to run even if some of the required jobs got skipped
if: always()
needs:
[
sanity,
operator-install,
operator-install-and-use,
]
steps:
- name: CI succeeded
# We have to do it in the shell since if it's in the if condition
# then skipping is considered success by branch protection rules
env:
CI_SUCCESS: ${{ (needs.sanity.result == 'success') &&
(needs.operator-install.result == 'success') &&
(needs.operator-install-and-use.result == 'success') }}
run: echo $CI_SUCCESS && if [ "$CI_SUCCESS" == "true" ]; then echo "SUCCESS" && exit 0; else echo "FAILURE" && exit 1; fi