diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index d4afc8023..938c9b57a 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -20,3 +20,23 @@ jobs: run: | export GOPATH=$(go env GOPATH) make verify + + kind: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version-file: go.mod + - name: Deploy Kind + # Not guaranteed to have patch releases available and node image tags are full versions (i.e v1.28.0 - no v1.28, v1.29, etc.) + # The KIND_NODE_VERSION is set by getting the version of the k8s.io/client-go dependency from the go.mod + # and sets major version to "1" and the patch version to "0". For example, a client-go version of v0.28.5 + # will map to a KIND_NODE_VERSION of 1.28.0 + run: make kind-cluster + - name: Apply CRDs + run: | + set -e + for crd in $(ls crds/*.yaml); do + kubectl create -f $crd + done \ No newline at end of file diff --git a/Makefile b/Makefile index 67224ad7d..75c11b1c2 100644 --- a/Makefile +++ b/Makefile @@ -99,11 +99,19 @@ $(LOCALBIN): ## Tool Binaries CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen YQ ?= $(LOCALBIN)/yq +KIND ?= $(LOCALBIN)/kind ## Tool Versions CONTROLLER_TOOLS_VERSION ?= v0.15.0 YQ_VERSION ?= v4.28.1 +# Not guaranteed to have patch releases available and node image tags are full versions (i.e v1.28.0 - no v1.28, v1.29, etc.) +# The KIND_NODE_VERSION is set by getting the version of the k8s.io/client-go dependency from the go.mod +# and sets major version to "1" and the patch version to "0". For example, a client-go version of v0.28.5 +# will map to a KIND_NODE_VERSION of 1.28.0 +KIND_NODE_VERSION := $(shell go list -m k8s.io/client-go | cut -d" " -f2 | sed 's/^v0\.\([[:digit:]]\{1,\}\)\.[[:digit:]]\{1,\}$$/1.\1.0/') +KIND_CLUSTER_IMAGE := kindest/node:v$(KIND_NODE_VERSION) + .PHONY: controller-gen controller-gen: $(CONTROLLER_GEN) ## Download controller-gen locally if necessary. $(CONTROLLER_GEN): $(LOCALBIN) @@ -113,3 +121,13 @@ $(CONTROLLER_GEN): $(LOCALBIN) yq: $(YQ) ## Download yq locally if necessary. $(YQ): $(LOCALBIN) GOBIN=$(LOCALBIN) go install $(GO_INSTALL_OPTS) github.com/mikefarah/yq/v4@$(YQ_VERSION) + +.PHONY: kind +kind: $(KIND) ## Download yq locally if necessary. +$(KIND): $(LOCALBIN) + GOBIN=$(LOCALBIN) go install $(GO_INSTALL_OPTS) sigs.k8s.io/kind@latest + +.PHONY: kind-cluster +kind-cluster: kind ## Create a kind cluster + $(KIND) create cluster --name olmv0 --image $(KIND_CLUSTER_IMAGE) + $(KIND) export kubeconfig --name olmv0 \ No newline at end of file diff --git a/crds/zz_defs.go b/crds/zz_defs.go index 0e3f3c87a..b055ccd72 100644 --- a/crds/zz_defs.go +++ b/crds/zz_defs.go @@ -1,6 +1,6 @@ // Code generated by go-bindata. (@generated) DO NOT EDIT. - //Package crds generated by go-bindata.// sources: +//Package crds generated by go-bindata.// sources: // operators.coreos.com_catalogsources.yaml // operators.coreos.com_clusterserviceversions.yaml // operators.coreos.com_installplans.yaml @@ -311,11 +311,13 @@ var _bindata = map[string]func() (*asset, error){ // directory embedded in the file by go-bindata. // For example if you run go-bindata on data/... and data contains the // following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png +// +// data/ +// foo.txt +// img/ +// a.png +// b.png +// // then AssetDir("data") would return []string{"foo.txt", "img"} // AssetDir("data/img") would return []string{"a.png", "b.png"} // AssetDir("foo.txt") and AssetDir("notexist") would return an error