Cluster Version Operator (CVO)
Building and Publishing CVO
./hack/build-image.sh && REPO=<your personal repo (quay.io/ahbinavdahiya | docker.io/abhinavdahiya)> ./hack/push-image.go
-
This builds image locally and then pushes ${VERSION}
and latest
tags to ${REPO}/origin-cluster-version-operator
.
-
${VERSION}
encodes the Git commit used to build the images.
Building release image using local CVO
-
Make sure you have oc
binary from https://github.com/openshift/origin master as it requires adm release
subcommand.
-
Run the following command to create release-image at docker.io/abhinavdahiya/origin-release:latest
:
oc adm release new -n openshift --server https://api.ci.openshift.org \
--from-image-stream=origin-v4.0 \
--to-image-base=docker.io/abhinavdahiya/origin-cluster-version-operator:latest \
--to-image docker.io/abhinavdahiya/origin-release:latest
Using CVO to render the release-image locally
- Run the following command to get render the release-payload contents to
/tmp/cvo
podman run --rm -ti \
-v /tmp/cvo:/tmp/cvo:z \
<release image> \
render \
--output-dir=/tmp/cvo \
--release-image="<release image>"
<release image>
can be personal release image generated using this or Origin's release image like registry.svc.ci.openshift.org/openshift/origin-release:v4.0
.
Installing CVO and operators in cluster.
-
Use CVO render
to render all the manifests from release-payload to a directory. here
-
Create the operators from the manifests by using oc create -f <directory when CVO rendered manfiests>
.
Running CVO tests
# Run all unit tests
go test ./...
# Run integration tests against a cluster (creates content in a given namespace)
# Requires the CVO CRD to be installed.
export KUBECONFIG=<admin kubeconfig>
TEST_INTEGRATION=1 go test ./... -test.run=^TestIntegration