github.com/operator-framework/operator-lifecycle-manager@v0.30.0/.github/workflows/quickstart.yml (about) 1 name: release-checks 2 on: 3 pull_request: 4 paths: 5 - 'deploy/upstream/quickstart/**' 6 workflow_dispatch: 7 jobs: 8 install-quickstart: 9 runs-on: ubuntu-latest 10 steps: 11 - uses: actions/checkout@v4 12 - run: | 13 curl -sLo kind "$(curl -sL https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '[.assets[] | select(.name == "kind-linux-amd64")] | first | .browser_download_url')" 14 chmod +x kind 15 sudo mv kind /bin/ 16 curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" 17 chmod +x kubectl 18 sudo mv kubectl /bin/ 19 kind create cluster 20 kind export kubeconfig 21 kubectl apply -f deploy/upstream/quickstart/crds.yaml 22 kubectl wait --timeout=5m --for=condition=Established crd $(kubectl get crd --output=jsonpath='{.items[*].metadata.name}') 23 kubectl apply -f deploy/upstream/quickstart/olm.yaml 24 25 # Note(tflannag): `kubectl wait` does not support waiting for resource creation: https://github.com/kubernetes/kubernetes/pull/87399. 26 wait_for_deployment() { 27 local deployment_name=$1 28 timeout=60 29 i=1 30 echo "Checking if the ${deployment_name} deployment is ready" 31 until kubectl -n olm get deployment ${deployment_name} -o jsonpath='{.status.conditions[?(@.status=="True")].type}' | grep "Available" 2>/dev/null; do 32 ((i++)) 33 if [[ ${i} -gt ${timeout} ]]; then 34 echo "the ${deployment_name} deployment has not become ready before the timeout period" 35 exit 1 36 fi 37 echo "waiting for ${deployment_name} deployment to report a ready status" 38 sleep 5 39 done 40 echo "The ${deployment_name} deployment is ready" 41 } 42 wait_for_deployment catalog-operator 43 wait_for_deployment olm-operator 44 wait_for_deployment packageserver