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.
domainandworkspaceHostingBaseDomain— see Requirements and sizing and Encrypt the secrets and configure DNS.certIssuer— see Cluster ingress CA options.internal,preview,features— three separate flag buckets; see Feature flags.plans— see Workspace and hosting plans.gitProviders— see Git providers.oauth.oidc— see Identity providers.managedServices— see Managed services.
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.