Skip to content

Development Notes ‐ HELM VERSION

Scott Trent edited this page Apr 19, 2024 · 1 revision

Random notes on developing for SusQL Operator -- HELM VERSION

(Work in progress)

  • Operator build has been verified on RHEL and Ubuntu.
  • docker.io and quay.io have been used for container image storage.
  • Runtime environments include Kind Clusters, OpenShift local, and full multi-node OpenShift clusters.
  • podman, docker or other compatible container tool and go are required to build.

Changes to the main branch automatically rebuild and push the container image via github action, but non-main branches or forked repos need to be hand-built and pushed to a developer specific location to avoid overwriting the official images.

Sample steps to build and push image

export IMG=REGISTRYURL/REPOSITORYNAME/susql-controller:latest
podman login
make build && make docker-build && make docker-push

If using docker then run export CONTAINER_TOOL=docker before building.

To use a development container image, the following environment variables can be specified at deploy time.

SUSQL_REGISTRY
SUSQL_IMAGE_NAME
SUSQL_IMAGE_TAG

Simple functional verification

cd susql-operator/test
oc create -f labelgroups.yaml
oc create -f training-job-1.yaml
oc create -f training-job-2.yaml

bash labelgroups.sh
sleep 10
bash labelgroups.sh

# remove test artifacts on completion
oc delete -f training-job-2.yaml
oc delete -f training-job-1.yaml
oc delete -f labelgroups.yaml

Troubleshooting

  • Verify configuration displayed at install time
  • Double check that Kepler is functioning (e.g., expected output from OpenShift Observe Dashboards, etc)
  • Look at SusQL controller pod log output
kubectl logs -n openshift-kepler-operator $( kubectl get pod -n openshift-kepler-operator | grep susql-controller | cut -f 1 -d" " )
  • Verify accessibility and contents of appropriate Prometheus databases.
  • The log level can be changed by editing zapcore.Level(-2) in cmd/main.go and recreating the container image. (Eventually, log level will be configurable.)