mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-05 13:05:17 +00:00
* Use appropriate CRD API during readiness check (#4015) * Use appropriate CRD API during readiness check The readiness check for the Velero CRDs was still using the v1beta1 API. This would cause the readiness check to fail on 1.22 clusters as the v1beta1 API is no longer available. Previously, this error would be ignored and the installation would proceed, however with #4002, we are no longer ignoring errors from this check. This change modifies the CRD readiness check to check the CRDs using the same API version that was used when submitting the CRDs to the cluster. It also introduces a new CRD builder using the V1 API for testing. This change also fixes a bug that was identified in the polling code where if the CRDs were not ready on the first polling iteration, they would be added again to the list of CRDs to check resulting in duplicates. This would cause the length check to fail on all subsequent polls and the timeout would always be reached. Signed-off-by: Bridget McErlean <bmcerlean@vmware.com> * Remove duplicate V1 CRD builder and update comment Signed-off-by: Bridget McErlean <bmcerlean@vmware.com> * Merge pull request #4012 from jenting/add-k8s-1.22-ci-test Add Kubernetes v1.22 CI test * Update changelog for v1.6.3 Signed-off-by: Bridget McErlean <bmcerlean@vmware.com> Co-authored-by: Scott Seago <sseago@redhat.com>
90 lines
3.2 KiB
YAML
90 lines
3.2 KiB
YAML
name: "Verify Velero CRDs across k8s versions"
|
|
on:
|
|
pull_request:
|
|
# Do not run when the change only includes these directories.
|
|
paths-ignore:
|
|
- "site/**"
|
|
- "design/**"
|
|
|
|
jobs:
|
|
# Build the Velero CLI once for all Kubernetes versions, and cache it so the fan-out workers can get it.
|
|
build-cli:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Look for a CLI that's made for this PR
|
|
- name: Fetch built CLI
|
|
id: cache
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: cache-velero-cli
|
|
with:
|
|
path: ./_output/bin/linux/amd64/velero
|
|
# The cache key a combination of the current PR number, and a SHA256 hash of the Velero binary
|
|
key: velero-${{ github.event.pull_request.number }}-${{ hashFiles('./_output/bin/linux/amd64/velero') }}
|
|
# This key controls the prefixes that we'll look at in the cache to restore from
|
|
restore-keys: |
|
|
velero-${{ github.event.pull_request.number }}-
|
|
|
|
- name: Fetch cached go modules
|
|
uses: actions/cache@v2
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
|
|
- name: Check out the code
|
|
uses: actions/checkout@v2
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
|
|
# If no binaries were built for this PR, build it now.
|
|
- name: Build Velero CLI
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
make local
|
|
|
|
# Check the common CLI against all kubernetes versions
|
|
crd-check:
|
|
needs: build-cli
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
# Latest k8s versions. There's no series-based tag, nor is there a latest tag.
|
|
k8s:
|
|
- 1.15.12
|
|
- 1.16.15
|
|
- 1.17.17
|
|
- 1.18.15
|
|
- 1.19.7
|
|
- 1.20.2
|
|
- 1.21.1
|
|
- 1.22.0
|
|
# All steps run in parallel unless otherwise specified.
|
|
# See https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#creating-dependent-jobs
|
|
steps:
|
|
- name: Fetch built CLI
|
|
id: cache
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: cache-velero-cli
|
|
with:
|
|
path: ./_output/bin/linux/amd64/velero
|
|
# The cache key a combination of the current PR number, and a SHA256 hash of the Velero binary
|
|
key: velero-${{ github.event.pull_request.number }}-${{ hashFiles('./_output/bin/linux/amd64/velero') }}
|
|
# This key controls the prefixes that we'll look at in the cache to restore from
|
|
restore-keys: |
|
|
velero-${{ github.event.pull_request.number }}-
|
|
- uses: engineerd/setup-kind@v0.5.0
|
|
with:
|
|
version: "v0.11.1"
|
|
image: "kindest/node:v${{ matrix.k8s }}"
|
|
- name: Install CRDs
|
|
run: |
|
|
kubectl cluster-info
|
|
kubectl get pods -n kube-system
|
|
kubectl version
|
|
echo "current-context:" $(kubectl config current-context)
|
|
echo "environment-kubeconfig:" ${KUBECONFIG}
|
|
./_output/bin/linux/amd64/velero install --crds-only --dry-run -oyaml | kubectl apply -f -
|