Skip to content

Installation

This page covers different methods for installing ORC in your Kubernetes cluster.

Prerequisites

  • Kubernetes v1.29 or later (required for CEL validations)
  • kubectl configured to access your cluster

Quick Install

The simplest way to install ORC is using the release manifest:

kubectl apply --server-side -f \
    https://github.com/k-orc/openstack-resource-controller/releases/latest/download/install.yaml

This installs:

  • Custom Resource Definitions (CRDs) for all ORC resources
  • The orc-system namespace
  • The ORC controller deployment
  • Required RBAC roles and bindings

Verify the installation:

kubectl get pods -n orc-system

Expected output:

NAME                                      READY   STATUS    RESTARTS   AGE
orc-controller-manager-5d4b8c9f7-xxxxx    1/1     Running   0          30s

Install a Specific Version

To install a specific version:

export ORC_VERSION="v2.3.0"
kubectl apply --server-side -f \
    https://github.com/k-orc/openstack-resource-controller/releases/download/${ORC_VERSION}/install.yaml

See the Releases page for available versions.

Install from Source

To install from the main branch (for development or testing):

git clone https://github.com/k-orc/openstack-resource-controller.git
cd openstack-resource-controller

make deploy IMG=quay.io/orc/openstack-resource-controller:branch-main

Configuration Options

The controller supports flags for namespace scoping, CA certificates, resource limits, log verbosity, and more. See the Controller Configuration reference for the full list.

Upgrading

To upgrade to a new version:

export NEW_VERSION=<target_version> # For instance v2.4.0
kubectl apply --server-side -f \
    https://github.com/k-orc/openstack-resource-controller/releases/download/${NEW_VERSION}/install.yaml

The upgrade process:

  1. Updates CRDs with any new fields
  2. Rolls out the new controller version
  3. Existing resources continue to be managed

Note

Always check the Changelog for breaking changes before upgrading major versions.

Uninstalling

To remove ORC from your cluster:

# 1. Delete all ORC resources first
kubectl delete openstack --all

# 2. Wait for resources to be cleaned up
kubectl get openstack

# 3. Delete credentials secrets
kubectl delete secret openstack-clouds

# 4. Uninstall ORC
kubectl delete -f \
    https://github.com/k-orc/openstack-resource-controller/releases/latest/download/install.yaml

# 4. Or, if you installed from source
make undeploy

Warning

Deleting ORC before deleting ORC resources will leave orphaned resources in OpenStack that must be cleaned up manually. Alternatively, ORC can be re-installed to clean up the resources.

Verifying the Installation

After installation, verify ORC is running:

# Check the controller pod
kubectl get pods -n orc-system

# Check CRDs are installed
kubectl get crd | grep openstack.k-orc.cloud

# Check controller logs
kubectl logs -n orc-system deployment/orc-controller-manager

Next Steps

Once ORC is installed, follow the Tutorial to deploy your first server.