Parameters
The parent key for all of the following parameters is openshift4_ingress
.
ingressControllers
type |
dictionary |
default |
Default ingress controller. |
A dictionary holding the .spec
for ingress controllers.
The keys of the dict are used as names for the ingress controllers.
See the OpenShift docs for available parameters.
The domain
parameter is required.
To remove all ingress controllers, set to null
.
ingressControllerAnnotations
type |
dictionary |
default |
|
A dictionary holding the annotations
for ingress controllers.
The keys of the dict are the names of the ingress controllers to annotate.
cloud.provider
type |
string |
default |
|
The name of the cloud provider where the DNS service is hosted.
Except for special cases, this parameter should always be set to ${facts:cloud}
.
cloud.credentials
type |
string |
default |
undefined |
The cloud provider credentials which will be used by the Issuer.
If this isn’t set, a CredentialsRequest
will be created.
cloud.gcp.projectName
type |
string |
default |
undefined |
The GCP project name in which the DNS setup is hosted.
cloud.aws.accessKey
type |
string |
default |
undefined |
Access key ID to be used for Route53 access.
The credentials will be created by this component via a CredentialsRequest
.
Unfortunately the access key ID must be copied from the resulting secret:
kubectl get secret ingress-cert-issuer-credentials \
-n openshift-ingress \
-o jsonpath='{.data.aws_access_key_id}' | \
base64 --decode
cloud.azure.clientID
type |
string |
default |
undefined |
kubectl get secret ingress-cert-issuer-credentials \
-n openshift-ingress \
-o jsonpath='{.data.azure_client_id}' | \
base64 --decode
cloud.azure.subscriptionID
type |
string |
default |
undefined |
kubectl get secret ingress-cert-issuer-credentials \
-n openshift-ingress \
-o jsonpath='{.data.azure_subscription_id}' | \
base64 --decode
cloud.azure.tenantID
type |
string |
default |
undefined |
kubectl get secret ingress-cert-issuer-credentials \
-n openshift-ingress \
-o jsonpath='{.data.azure_tenant_id}' | \
base64 --decode
cloud.azure.resourceGroupName
type |
string |
default |
undefined |
kubectl get secret ingress-cert-issuer-credentials \
-n openshift-ingress \
-o jsonpath='{.data.azure_resourcegroup}' | \
base64 --decode
secrets
type |
dictionary |
default |
|
Each entry in parameter secrets
is deployed onto the cluster as a Kubernetes Secret with type=kubernetes.io/tls
.
Entries with null
values are skipped.
This allows users to remove secrets which were configured higher up in the hierarchy.
The component has basic validation to ensure the secret contents are a plausible Kubernetes TLS secret.
The dictionary keys are used as metadata.name
for the resulting Secret
resources.
The dictionary values are directly merged into a Secret
resource which only has type=kubernetes.io/tls
set.
The secrets are created in the namespace indicated by parameter namespace
.
The OpenShift authentication operator generates a secret which contains the certificate and secret key of the ingress default certificate in a single field. To ensure that the concatenated data is always valid, the component appends a trailing newline to each field of the provided secret.
cert_manager_certs
type |
dictionary |
default |
|
Each entry in parameter cert_manager_certs
is deployed onto the cluster as a cert-manager Certificate
resource.
Entries with null
values are skipped.
This allows users to remove certificates which were configured higher up in the hierarchy.
The dictionary keys are used as metadata.name
and spec.secretName
for the resulting Certificate
resources.
The dictionary values are then directly directly merged into the mostly empty Certificate
resources.
Examples
Managing a secret for the wildcard certificate
parameters:
openshift4_ingress:
ingressControllers:
prod:
domain: apps.example.com
defaultCertificate:
# Use the secret configured below
name: prod-wildcard
namespaceSelector:
matchLabels:
environment: prod
ingressControllerAnnotations:
prod:
ingress.operator.openshift.io/default-enable-http2: true
secrets:
prod-wildcard:
stringData:
tls.key: "?{vaultkv:...}" # reference to private key in Vault
tls.crt: "?{vaultkv:...}" # reference to cert in Vault
Managing a cert-manager wildcard certificate
This requires an issuer which supports DNS01 challenges. See the Using DNS01 challenges how-to for component cert-manager to get started with DNS01 challenges. |
parameters:
openshift4_ingress:
ingressControllers:
prod:
domain: apps.example.com
defaultCertificate:
# Use the secret for the certificate below.
# By default, the component creates a secret with name
# `prod-wildcard-tls` for certificate resource `prod-wildcard`
name: prod-wildcard-tls
cert_manager_certificates:
prod-wildcard-tls:
spec:
dnsNames:
- '*.apps.example.com'
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer