diff --git a/Makefile b/Makefile index 9abc35b3d..2010d453f 100644 --- a/Makefile +++ b/Makefile @@ -301,10 +301,15 @@ kind-clean: $(KIND) #EXHELP Delete the kind cluster. #SECTION Build -ifeq ($(origin VERSION), undefined) +# attempt to generate the VERSION attribute for certificates +# fail if it is unset afterwards, since the side effects are indirect +ifeq ($(strip $(VERSION)),) VERSION := $(shell git describe --tags --always --dirty) endif export VERSION +ifeq ($(strip $(VERSION)),) + $(error undefined VERSION; resulting certs will be invalid) +endif ifeq ($(origin CGO_ENABLED), undefined) CGO_ENABLED := 0 diff --git a/hack/demo/catalogd-demo-script.sh b/hack/demo/catalogd-demo-script.sh index bbde25071..e7f226f24 100755 --- a/hack/demo/catalogd-demo-script.sh +++ b/hack/demo/catalogd-demo-script.sh @@ -23,7 +23,7 @@ kubectl wait --for=condition=Available -n olmv1-system deploy/catalogd-controlle echo "... checking clustercatalog is serving" kubectl wait --for=condition=Serving clustercatalog/operatorhubio --timeout=60s echo "... checking clustercatalog is finished unpacking" -kubectl wait --for=condition=Progressing=False clustercatalog/operatorhubio --timeout=60s +kubectl wait --for=condition=Progressing=True clustercatalog/operatorhubio --timeout=60s # port forward the catalogd-service service to interact with the HTTP server serving catalog contents (kubectl -n olmv1-system port-forward svc/catalogd-service 8081:443)& diff --git a/hack/demo/catalogd-metas-demo-script.sh b/hack/demo/catalogd-metas-demo-script.sh new file mode 100755 index 000000000..63fb84b83 --- /dev/null +++ b/hack/demo/catalogd-metas-demo-script.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# +# Welcome to the catalogd metas API endpoint demo +# +trap 'trap - SIGTERM && kill -- -"$$"' SIGINT SIGTERM EXIT + +kind delete cluster +kind create cluster +kubectl cluster-info --context kind-kind +sleep 10 + +# use the install script from the latest github release +curl -L -s https://github.com/operator-framework/operator-controller/releases/latest/download/install.sh | bash + +# inspect crds (clustercatalog) +kubectl get crds -A +kubectl get clustercatalog -A + +# ... checking catalogd controller is available +kubectl wait --for=condition=Available -n olmv1-system deploy/catalogd-controller-manager --timeout=1m + +# patch the deployment to include the feature gate +kubectl patch -n olmv1-system deploy/catalogd-controller-manager --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--feature-gates=APIV1MetasHandler=true"}]' + +# ... waiting for new deployment for catalogd controller to become available +kubectl rollout status -n olmv1-system deploy/catalogd-controller-manager +kubectl wait --for=condition=Available -n olmv1-system deploy/catalogd-controller-manager --timeout=1m +# ... checking clustercatalog is serving +kubectl wait --for=condition=Serving clustercatalog/operatorhubio --timeout=60s +# ... checking clustercatalog is finished unpacking (progressing gone back to true) +kubectl wait --for=condition=Progressing=True clustercatalog/operatorhubio --timeout=60s + + +# port forward the catalogd-service service to interact with the HTTP server serving catalog contents +(kubectl -n olmv1-system port-forward svc/catalogd-service 8081:443)& + + +# check what 'packages' are available in this catalog +curl -f --retry-all-errors --retry 10 -k 'https://localhost:8081/catalogs/operatorhubio/api/v1/metas?schema=olm.package' | jq -s '.[] | .name' +# check what channels are included in the wavefront package +curl -f -k 'https://localhost:8081/catalogs/operatorhubio/api/v1/metas?schema=olm.channel&package=wavefront' | jq -s '.[] |.name' +# check what bundles are included in the wavefront package +curl -f -k 'https://localhost:8081/catalogs/operatorhubio/api/v1/metas?schema=olm.bundle&package=wavefront' | jq -s '.[] |.name' +