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