Skip to main content
Version: Weekly Build

Private Cloud Installer Config Reference

config.yaml is generated by oms init install-config (see Prepare the jumpbox and generate the configuration) and consumed by oms install codesphere. It has twelve top-level keys.

dataCenter

Identifies this installation.

dataCenter:
id: 1
name: dev
city: Karlsruhe
countryCode: DE

An installation spanning several data centers has one config per data center and two more top-level keys, dataCenters and defaultDataCenterId — see Multiple data centers: configuration.

secrets

secrets:
baseDir: /etc/codesphere/secrets

baseDir is the directory containing the vault (prod.vault.yaml). It should match the directory passed to --vault when running oms install codesphere.

registry

registry:
server: ghcr.io
replaceImagesInBom: false
loadContainerImages: false

server is the container registry nodes pull images from. loadContainerImages loads image tarballs bundled in the (deprecated) full installer package instead of pulling from server; leave it false when using the lite package. See Run the installer.

postgres

postgres:
mode: install # or external
primary:
ip: 10.10.0.20
hostname: postgres-1

mode: install has the installer manage PostgreSQL on a host you provide via primary (and optionally replica). mode: external instead requires serverAddress pointing at a database you operate yourself; serverAddress must be empty when mode: install. For mode: external, the database's superuser must be named postgres — this is not configurable — and the connection is always made over TLS, so the certificate the database presents must be trusted (for a managed database service such as AWS RDS, this means using that service's actual CA bundle).

ceph

ceph:
csiKubeletDir: /var/lib/k0s/kubelet # /var/lib/kubelet for most non-k0s clusters
nodesSubnet: 10.10.0.0/20
hosts:
- hostname: ceph-1
ipAddress: 10.10.0.31
isMaster: true
osds:
- specId: default
dataDevices:
size: "240G:300G"
dbDevices:
size: "120G:150G"

hosts must list at least one Ceph host, exactly one of which is the master. csiKubeletDir must match the kubelet directory of the Kubernetes distribution in use — see Use an existing Kubernetes cluster. osds[].dataDevices/dbDevices select disks by size range; to signal "there is no separate DB/WAL disk," set a size range that matches none of the node's disks.

kubernetes

kubernetes:
managedByCodesphere: true # false to bring your own cluster
apiServerHost: 10.10.0.11
controlPlanes:
- ipAddress: 10.10.0.11
workers:
- ipAddress: 10.10.0.14

When managedByCodesphere is false, apiServerHost/controlPlanes/workers are not used; instead set podCidr and serviceCidr to the existing cluster's real network ranges (both required, no defaults) and supply the cluster's kubeConfig as a vault secret. See Use an existing Kubernetes cluster.

cluster

Cluster-level infrastructure: certificates, monitoring, and the two gateway services. See Cluster ingress CA options, Gateway and load balancing, and Cluster monitoring for the relevant sub-sections (cluster.certificates, cluster.gateway, cluster.publicGateway, cluster.monitoring).

metallb

metallb:
enabled: false

Disabled by default. See Gateway and load balancing for the pool and advertisement configuration when enabled.

codesphere

The largest section: platform domains, certificate issuer, feature flags, plans, Git and identity providers, and managed services.

codesphere:
domain: example.com
workspaceHostingBaseDomain: dc1.example.com
certIssuer:
type: self-signed
internal: []
preview: {}
features: {}

domain is the bare base domain and resolves to the platform gateway. workspaceHostingBaseDomain is the datacenter-specific hostname that gets wildcarded to the workspace gateway.

vpn.leftPeerId is an optional field that sets the local peer identity (leftid) sent by workspace VPN tunnels during IKE authentication. When omitted, strongSwan uses the workspace's local/private IP address as its identity. Many VPN gateways instead expect the workspace's public egress IP address. Set vpn.leftPeerId when your gateway requires that or another specific identity to match its connection policy. Accepted formats follow strongSwan identity syntax: an IPv4 address (203.0.113.1), a fully qualified domain name (vpn.example.com), an email address ([email protected]), or a distinguished name (C=DE, O=Example, CN=vpn.example.com).

codesphere:
vpn:
leftPeerId: vpn.example.com

pcApps

Free-form Helm values passed through to the pc-applications Argo CD chart (see Architecture). Use only when a specific pc-apps component needs a non-default value. oms init install-config does not generate this section; add it manually when needed.

managedServiceBackends

Enables the backend implementation for each managed service enabled under codesphere.managedServices. See Managed services.

operations

operations:
skip:
- load-container-images

Persists installer steps to skip on every run, in addition to whatever is passed with --skip-steps. See Install steps and profiles.