Installation¶
Install the oooi operator once per management cluster. It runs in namespace
oooi-system and manages Infra resources in any namespace it is RBAC-granted
for (by default: cluster-wide).
Deploy the operator¶
Set the operator image to the published or mirrored image for your environment:
export OOOI_IMAGE=registry.example.com/oooi:latest
# 1. CRDs
make install # = kustomize build config/crd | kubectl apply -f -
# 2. Operator (Deployment, RBAC, namespace)
make deploy IMG="$OOOI_IMAGE"
# 3. Confirm rollout
kubectl -n oooi-system rollout status deployment/oooi-controller-manager --timeout=5m
make deploy renders config/default with kustomize; pin a digest for
reproducible environments:
Detailed behavior, RBAC, and troubleshooting: Deploy the operator.
Build your own images¶
If you cannot consume the published image, build and push with ko (multi-arch, UBI9-based):
make container-build reads IMAGE_TAG_BASE for the ko repository. The
resulting image digest can be used for the operator and component image fields.
See Build images.
Verify the installation¶
kubectl get crd | grep hostedcluster.densityops.com
# dhcpservers.hostedcluster.densityops.com
# dnsservers.hostedcluster.densityops.com
# infras.hostedcluster.densityops.com
# infraclusterattachments.hostedcluster.densityops.com
# proxyservers.hostedcluster.densityops.com
kubectl -n oooi-system get deploy,pods
Upgrade¶
- Build or pull the new image.
- Re-run
make install(CRD schema updates). - Re-run
make deploy IMG="$NEW_IMAGE"— the Deployment is updated in place. - Update
proxyImage/managerImagefields in existingInfraresources if you pin component images there.
Existing child resources reconcile to the new spec on the next sync; no data migration is required.
Uninstall¶
Follow Uninstall and cleanup — delete
InfraClusterAttachment resources first so hosted-cluster resources and
cross-namespace policies are cleaned up, then delete Infra resources and
remove the operator and CRDs.