Operator configuration¶
The operator chart is in charts/replicove. The CLI embeds this chart. make manifests renders the native YAML installer from the same templates, with in-cluster key bootstrap enabled.
Helm values¶
| Value | Default | Meaning |
|---|---|---|
image.repository |
ghcr.io/nimeshbuilds/replicove |
Public operator image repository |
image.tag |
0.3.0-alpha.2 |
Versioned alpha image tag |
image.digest |
Empty in source; set by release packaging | SHA-256 image digest; takes precedence over tag |
image.pullPolicy |
IfNotPresent |
Kubernetes image pull behavior |
destinationNamespace |
replica-lab |
The one namespace watched by this operator |
createDestinationNamespace |
true |
Create if absent; retain on uninstall; reuse existing namespaces without adoption |
stateKey.bootstrap |
false |
Helm creates/reuses the key Secret by default; true uses the bounded bootstrap Job instead |
sources |
[] |
Source namespace and read-only RBAC rule entries |
clusterReadRules |
[] |
Additional explicit read-only cluster resource rules |
mirrors.enabled |
false |
Enable the ReplicaMirror/ReplicaMirrorRun controller and optional permissions |
mirrors.networkPolicyEnforced |
false |
Administrator attestation that host CNI enforces the generated egress policies |
mirrors.sources |
[] |
Source namespace names receiving explicit PVC-read/snapshot permissions |
mirrors.snapshotController.mode |
auto |
Install snapshot APIs/controller if absent; existing reuses host infrastructure; managed explicitly installs the bundled controller |
mirrors.snapshotController.image |
registry.k8s.io/sig-storage/snapshot-controller:v8.6.0 |
Qualified upstream controller image |
databases.enabled |
false |
Enable granted PostgreSQL preparation/cleanup and its host/storage permissions |
chaos.enabled |
false |
Enable ReplicaExperiment reconciliation and bounded fault permissions |
chaos.networkPolicyEnforced |
false |
Administrator qualification of host CNI enforcement for network/Job faults |
capacity.enabled |
false |
Install retained destination ResourceQuota and optional LimitRange |
capacity.hard |
{} |
Explicit host resource quota limits; required when rendering a pool |
capacity.defaultContainer |
{} |
Optional LimitRange container defaults |
resources.requests.cpu |
100m |
Operator CPU request |
resources.requests.memory |
256Mi |
Operator memory request |
resources.limits.memory |
1Gi |
Operator memory limit |
The release namespace is the protected state namespace. It must differ from destinationNamespace. The native installer fixes the default names; customize every corresponding namespace/RBAC/argument reference together if changing them. This alpha does not provide a single native-manifest namespace switch.
sources entries have namespace and Kubernetes rules; the chart creates a Role and RoleBinding in each source. Sources must already exist. Use get and list only for desired source reads. Add cluster reads only for inputs your grant permits. The cluster grant reader needs get replicagrants; host kube-system identity and bound PV inspection are also explicit built-in reads.
The chart does not expose arbitrary vCluster values. Runtime configuration is an exact catalog profile. The published operator chart pins its multiarchitecture image by digest. Upstream vCluster and guest-image digest locking remains separate work. See remaining release gates.
Operator process flags¶
| Flag | Default | Purpose |
|---|---|---|
--watch-namespace |
Required for controller mode | One destination namespace |
--state-namespace |
Empty | Enable full workflow with a separate protected namespace; installed chart sets it |
--chart-path |
Empty | Administrator-supplied vCluster archive; SHA-256 must still match the profile |
--health-probe-bind-address |
:8081 |
HTTP health/readiness probe listener |
--mirrors |
false |
Register the mirror controller and generation preparation/cleanup hooks |
--mirror-network-policy-enforced |
false |
Require the administrator's CNI qualification before mirroring |
--databases |
false |
Enable PostgreSQL preparation before application/access and journal-based cleanup |
--chaos |
false |
Register bounded guest experiment reconciliation |
--chaos-network-policy-enforced |
false |
Require the administrator's host CNI qualification for network/Job faults |
--bootstrap-state-key |
false |
One-shot immutable key initialization/validation, then exit |
Running without a state namespace retains only the legacy runtime controller. It is not a complete replica deployment. Use the supported installers for full functionality.
The binary also exposes controller-runtime's Zap logging flags; run bin/cluster-replica --help for their exact names. Logs and status should not contain Secret payloads. Metrics serving is disabled in the current operator. Leadership uses a namespaced Lease; the chart runs one operator replica.
Deployment and bootstrap security¶
The operator and bootstrap Job run as non-root UID/GID 65532, use RuntimeDefault seccomp, drop capabilities, prohibit privilege escalation, and use a read-only root filesystem. The operator has a memory-backed /tmp. The bootstrap Job's separate service account can only get/list/create Secrets in the protected namespace; it cannot update or delete an existing key. It has a five-minute active deadline and three retries.
The key is an immutable Opaque Secret with 32 random bytes, generated inside the cluster for YAML installations. Reinitialization must preserve it; missing-key recovery requires the original key if protected records exist.
Probe success indicates the process is available, not that every replica or external storage dependency is healthy. Observe individual request conditions as well as Deployment readiness.
Generated files and upgrades¶
Edit the chart templates and run make generate to regenerate CRDs, embedded chart schemas, and native installation manifests. CI fails if checked-in generated files differ. Review permissions alongside the pinned upstream chart contract.
Follow installation upgrades and runtime maintenance for key retention, CRD updates, immutable Job replacement, and compatibility qualification.
mirrors.enabled may be enabled after installation. Use the complete upgrade procedure, including image selection, retained user values, source authorization and dependency checks. Changing it back to false requires completing mirror cleanup first.
PostgreSQL and chaos can likewise be enabled on the existing installation using matching versioned CRDs, image, values and RBAC. Database NetworkPolicy enforcement is attested in each administrator database grant, not by a separate operator flag. Keep affected modules and permissions enabled while requests or finalizers remain. See optional modules.
ResourceQuota/LimitRange installation is separate from durable capacity admission. The operator always applies its managed-runtime slot check and any grant maxConcurrentReplicas cap; capacity.enabled controls host quota objects, not the reservation ledger. Both queueing and provisioning consume the original request TTL. The default disabled quota setting is not a production sizing recommendation.