Lux Docs
Operator

Deployment

Installing and configuring the Lux Operator on Kubernetes

Prerequisites

  • Kubernetes 1.28+
  • kubectl configured with cluster access
  • Container registry access to ghcr.io/luxfi

Install CRDs

Apply the custom resource definitions before deploying the operator:

kubectl apply -f https://raw.githubusercontent.com/luxfi/operator/main/k8s/crds/

Deploy the Operator

apiVersion: apps/v1
kind: Deployment
metadata:
  name: lux-operator
  namespace: lux-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: lux-operator
  template:
    metadata:
      labels:
        app: lux-operator
    spec:
      serviceAccountName: lux-operator
      containers:
        - name: operator
          image: ghcr.io/luxfi/operator:v0.3.9
          args:
            - --leader-election
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 256Mi

The operator requires a ServiceAccount with RBAC permissions to manage StatefulSets, Services, ConfigMaps, PodDisruptionBudgets, and all Lux CRDs.

Apply with Kustomize

The recommended deployment method uses Kustomize:

cd k8s/
kubectl kustomize . | kubectl apply -f -

Configuration

The operator is configured primarily through CRD specs. Key operational flags:

FlagDescription
--leader-electionEnable leader election for HA (presence = true)
--reconcile-intervalReconciliation loop interval (default: 60s)
--metrics-addrPrometheus metrics bind address (default: :8080)

Verify Installation

kubectl get deployment lux-operator -n lux-system
kubectl get crd | grep lux.network

Check operator logs for reconciliation activity:

kubectl logs -n lux-system deployment/lux-operator

On this page