0xFelix / ssp-operator

Kubevirt SSP Operator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSP Operator

Operator that manages Scheduling, Scale and Performance addons for KubeVirt

Functionality

The operator deploys and manages resources needed by these four components:

Installation

The ssp-operator requires an Openshift cluster to run properly.

Requirements

The following resource types and CRDs are needed by ssp-operator:

Resource type / CRD Needed by
dataimportcrons.cdi.kubevirt.io data-sources operand (Kind DataImportCron)
datavolumes.cdi.kubevirt.io/v1beta1 data-sources operand (Kind DataVolume and DataVolumeSource)
datasources.cdi.kubevirt.io/v1beta1 data-sources operand (Kind DataSource)
prometheusrules.monitoring.coreos.com metrics operand (Kind PrometheusRule)
securitycontextconstraints.security.openshift.io node-labeller operand (Kind SecurityContextConstraints)
template.openshift.io/v1 common-templates operand (Kind Template)

Using HCO

The Hyperconverged Cluster Operator automatically installs the SSP operator when deploying.

Manual installation

The operator can be installed manually by applying the file ssp-operator.yaml from GitHub releases:

oc apply -f ssp-operator.yaml

To install the latest released version, the following commands can be used:

export SSP_VERSION=$(curl https://api.github.com/repos/kubevirt/ssp-operator/releases/latest | jq '.name' | tr -d '"')
oc apply -f https://github.com/kubevirt/ssp-operator/releases/download/${SSP_VERSION}/ssp-operator.yaml

To activate the operator, a CR needs to be created. An example is in config/samples/ssp_v1beta1_ssp.yaml.

Building

The Make will try to install kustomize, however if it is already installed it will not reinstall it. In case of an error, make sure you are using at least v3 of kustomize, available here: https://kustomize.io/

To build the container image run:

make container-build

To upload the image to the default repository run:

make container-push

The repository and image name and tag can be changed with these variables:

export IMG_REPOSITORY=<registry>/<image_name> # for example: export IMG_REPOSITORY=quay.io/kubevirt/ssp-operator
export IMG_TAG=<image_tag> # for example: export IMG_TAG=latest

After the image is pushed to the repository, manifests and the operator can be deployed using:

make deploy

Building the Template Validator

Please note that building and deploying the Template Validator requires a separate process

To build the container image run:

make build-template-validator-container

To upload the image to the default repository run:

make push-template-validator-container

The repository and image name and tag can be changed with these variables:

export VALIDATOR_REPOSITORY=<registry>/<image_name> # for example: export VALIDATOR_REPOSITORY=quay.io/kubevirt/kubevirt-template-validator
export VALIDATOR_IMG_TAG=<image_tag> # for example: export VALIDATOR_IMG_TAG=latest

You should also edit the deployment to pull the image you want, for example you can use this command:

oc set env deployment/ssp-operator VALIDATOR_IMAGE=$VALIDATOR_IMG

Pausing the operator

The reconciliation can be paused by adding the following annotation to the SSP resource:

kubevirt.io/operator.paused: "true"

The operator will not react to any changes to the SSP resource or any of the watched resources. If a paused SSP resource is deleted, the operator will still cleanup all the dependent resources.

Development

See docs/development.md

About

Kubevirt SSP Operator

License:Apache License 2.0


Languages

Language:Go 96.0%Language:Shell 1.8%Language:Makefile 1.6%Language:Dockerfile 0.6%Language:Python 0.1%