Cluster Ingress CA Options
Codesphere supports two ways of issuing certificates for ingress traffic within the
cluster, selected with codesphere.certIssuer.type.
Available issuer types
certIssuer.type | Description | Example usage scenario |
|---|---|---|
self-signed (default) | Generate a new self-signed CA locally, or supply your own CA certificate and key (for example your organization's existing CA) under cluster.certificates.ca. | Quick start and test environments by default; enterprises with a central CA can supply their own CA material instead of generating one. |
acme | Use the ACME protocol (for example Let's Encrypt) for automated certificate issuance and renewal. | Automated certificate management, cloud-native environments. |
How to configure
In config.yaml, select the issuer with codesphere.certIssuer.type. The legacy
cluster.certificates.ca block holds the CA material for the self-signed type;
ACME is configured entirely under codesphere.certIssuer.acme and
cluster.certificates.override.
Self-signed (default, or your own CA)
codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # or ECDSA
keySizeBits: 2048 # or 4096, etc.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
To bring your own CA (for example an organization CA) instead of letting OMS
generate one, supply your CA's certificate as certPem and its private key as the
selfSignedCaKeyPem vault secret below.
The private key for the CA must be stored in your SOPS vault (prod.vault.yaml)
under the key selfSignedCaKeyPem:
secrets:
- name: selfSignedCaKeyPem
file:
name: ca.key
content: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
ACME
For ACME, provide the ACME server URL, your email, and optionally an EAB (External Account Binding) key ID. The ACME private key and EAB key are secrets and must be added to your SOPS vault.
Example: ACME (Let's Encrypt, with a Cloudflare DNS solver)
codesphere:
certIssuer:
type: acme
acme:
server: https://acme-v02.api.letsencrypt.org/directory
eabKeyId: <optional-eab-key-id>
cluster:
certificates:
override:
issuers:
acme:
# DNS solver configuration (override in your deployment config):
dnsSolver:
config:
cloudflare:
apiTokenSecretRef:
name: acme-solver
key: api-token
solverSecret:
name: acme-solver
data:
api-token: <api-token>
The EAB MAC key, if used, must be stored under the key acmeEabMacKey:
secrets:
- name: acmeEabMacKey
fields:
key: <your-eab-mac-key>
note
The DNS solver configuration must be added as an override in your deployment
config, matching your DNS provider (for example Cloudflare or Route53). For
Cloudflare, use the apiTokenSecretRef and solverSecret fields as shown above.
Choosing the right option
- Self-signed (generated): Easiest to set up, but trust must be distributed to all users and devices.
- Self-signed (your own CA): Recommended when you already operate a CA and want to leverage existing trust infrastructure.
- ACME: Best for automated certificate issuance and renewal without operating your own CA.
Next
See Gateway and load balancing for the gateway configuration these certificates are served from, and Networking, firewalls, and DNS for planning which issuer to use.