Verrazzano Custom Resource Definition
The Verrazzano custom resource contains the configuration information for an installation.
Here is a sample Verrazzano custom resource file that uses Oracle Cloud Infrastructure DNS. See other examples
here.
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: example-verrazzano
spec:
environmentName: env
profile: prod
components:
certManager:
certificate:
acme:
provider: letsEncrypt
emailAddress: emailAddress@example.com
dns:
oci:
ociConfigSecret: oci
dnsZoneCompartmentOCID: dnsZoneCompartmentOcid
dnsZoneOCID: dnsZoneOcid
dnsZoneName: my.dns.zone.name
ingress:
type: LoadBalancer
VerrazzanoSpec
Field |
Type |
Description |
Required |
environmentName |
string |
Name of the installation. This name is part of the endpoint access URLs that are generated. The default value is default . |
No |
profile |
string |
The installation profile to select. Valid values are prod (production) and dev (development). The default is prod . |
No |
version |
string |
The version to install. Valid versions can be found here. Defaults to the current version supported by the Verrazzano platform operator. |
No |
components |
Components |
The Verrazzano components. |
No |
defaultVolumeSource |
VolumeSource |
Defines the type of volume to be used for persistence for all components unless overridden, and can be one of either EmptyDirVolumeSource or PersistentVolumeClaimVolumeSource. If PersistentVolumeClaimVolumeSource is declared, then the claimName must reference the name of an existing VolumeClaimSpecTemplate declared in the volumeClaimSpecTemplates section. |
No |
volumeClaimSpecTemplates |
VolumeClaimSpecTemplate |
Defines a named set of PVC configurations that can be referenced from components to configure persistent volumes. |
No |
VolumeClaimSpecTemplate
Field |
Type |
Description |
Required |
metadata |
ObjectMeta |
Metadata about the PersistentVolumeClaimSpec template. |
No |
spec |
PersistentVolumeClaimSpec |
A PersistentVolumeClaimSpec template that can be referenced by a Component to override its default storage settings for a profile. At present, only a subset of the resources.requests object are honored depending on the component. |
No |
Components
AuthProxy Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then AuthProxy will be installed. |
No |
kubernetes |
AuthProxyKubernetes |
The Kubernetes resources than can be configured for AuthProxy. |
No |
AuthProxy Kubernetes Configuration
Field |
Type |
Description |
Required |
replicas |
uint32 |
The number of pods to replicate. |
No |
affinity |
Affinity |
A Kubernetes affinity definition. |
No |
CertManager Component
Field |
Type |
Description |
Required |
certificate |
Certificate |
The certificate configuration. |
No |
Certificate
Field |
Type |
Description |
Required |
acme |
Acme |
The ACME configuration. Either acme or ca must be specified. |
No |
ca |
CertificateAuthority |
The certificate authority configuration. Either acme or ca must be specified. |
No |
Acme
Field |
Type |
Description |
Required |
provider |
string |
Name of the Acme provider. |
Yes |
emailAddress |
string |
Email address of the user. |
Yes |
CertificateAuthority
Field |
Type |
Description |
Required |
secretName |
string |
The secret name. |
Yes |
clusterResourceNamespace |
string |
The secrete namespace. |
Yes |
DNS Component
Field |
Type |
Description |
Required |
wildcard |
DNS-Wilcard |
Wildcard DNS configuration. This is the default with a domain of nip.io . |
No |
oci |
DNS-OCI |
Oracle Cloud Infrastructure DNS configuration. |
No |
external |
DNS-External |
External DNS configuration. |
No |
DNS Wildcard
Field |
Type |
Description |
Required |
domain |
string |
The type of wildcard DNS domain. For example, nip.io , sslip.io , and such. |
Yes |
DNS Oracle Cloud Infrastructure
Field |
Type |
Description |
Required |
ociConfigSecret |
string |
Name of the Oracle Cloud Infrastructure configuration secret. Generate a secret based on the Oracle Cloud Infrastructure configuration profile you want to use. You can specify a profile other than DEFAULT and specify the secret name. See instructions by running ./install/create_oci_config_secret.sh . |
Yes |
dnsZoneCompartmentOCID |
string |
The Oracle Cloud Infrastructure DNS compartment OCID. |
Yes |
dnsZoneOCID |
string |
The Oracle Cloud Infrastructure DNS zone OCID. |
Yes |
dnsZoneName |
string |
Name of Oracle Cloud Infrastructure DNS zone. |
Yes |
dnsScope |
string |
Scope of the Oracle Cloud Infrastructure DNS zone (PRIVATE, GLOBAL). If not specified, then defaults to GLOBAL. |
No |
DNS External
Field |
Type |
Description |
Required |
suffix |
string |
The suffix for DNS names. |
Yes |
Ingress Component
Field |
Type |
Description |
Required |
type |
string |
The ingress type. Valid values are LoadBalancer and NodePort . The default value is LoadBalancer . |
Yes |
nginxInstallArgs |
NGINXInstallArgs list |
A list of values to use during NGINX installation. |
No |
ports |
PortConfig list |
The list port configurations used by the ingress. |
No |
NGINX Install Args
Name |
Type |
ValueType |
Description |
Required |
controller.service.externalIPs |
NameValue |
string list |
The external IP address used by the NGINX Ingress Controller. |
No |
controller.service.externalTrafficPolicy |
NameValue |
string |
Preserves the client source IP address. See Bare-metal considerations. |
No |
controller.service.annotations.* |
NameValue |
string |
Annotations used for NGINX Ingress Controller. For sample usage, see Customize Ingress. |
No |
controller.autoscaling.enabled |
NameValue |
Boolean |
If true, then enable horizonal pod autoscaler. Default false. |
No |
controller.autoscaling.minReplicas |
NameValue |
string |
Minimum replicas used for autoscaling. Default 1. |
No |
Port Config
Field |
Type |
Description |
Required |
name |
string |
The port name. |
No |
port |
string |
The port value. |
Yes |
targetPort |
string |
The target port value. The default is same as the port value. |
Yes |
protocol |
string |
The protocol used by the port. TCP is the default. |
No |
nodePort |
string |
The nodePort value. |
No |
Name Value
Field |
Type |
Description |
Required |
name |
string |
The name of a Helm override for a Verrazzano component chart, specified with a —set flag on the Helm command line, for example, helm install --set name=value . For more information about chart overrides, see Customize Ingress. |
Yes |
value |
string |
The value of a Helm override for a Verrazzano component chart, specified with a —set flag on the Helm command line, for example, helm install --set name=value . Either value or valueList must be specified. For more information about chart overrides, see Customize Ingress. |
No |
valueList |
string list |
The list of Helm override values for a Verrazzano component, each specified with a —set flag on the Helm command line, for example, helm install --set name[0]=<first element of valueList> —set name[1]=<second element of valueList> . Either value or valueList must be specified. For more information about chart overrides, see Customize Ingress. |
No |
setString |
Boolean |
Specifies if the argument requires the Helm --set-string command-line flag to override a chart value, for example, helm install --set-string name=value . |
No |
Istio Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Istio will be installed. |
No |
istioIngress |
IstioIngress |
The Istio ingress gateway configuration. |
No |
istioEgress |
IstioEgress |
The Istio egress gateway configuration. |
No |
istioInstallArgs |
IstioInstallArgs list |
A list of values to use during Istio installation. Each argument is specified as either a name/value or name/valueList pair. |
No |
Istio Ingress Configuration
Field |
Type |
Description |
Required |
kubernetes |
IstioKubernetes |
The Kubernetes resources than can be configured for an Istio ingress gateway. |
No |
Istio Egress Configuration
Field |
Type |
Description |
Required |
kubernetes |
IstioKubernetes |
The Kubernetes resources than can be configured for an Istio egress gateway. |
No |
Istio Kubernetes Configuration
Field |
Type |
Description |
Required |
replicas |
uint32 |
The number of pods to replicate. |
No |
affinity |
Affinity |
A Kubernetes affinity definition. |
No |
Istio Install Args
Name |
Type |
ValueType |
Description |
Required |
gateways.istio-ingressgateway.externalIPs |
NameValue |
string list |
The external IP address used by the Istio ingress gateway. |
No |
gateways.istio-ingressgateway.serviceAnnotations.* |
NameValue |
string |
Annotations used for the Istio ingress gateway. For sample usage, see Customize Ingress. |
No |
Fluentd Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Fluentd will be installed. |
No |
extraVolumeMounts |
ExtraVolumeMount list |
A list of host path volume mounts in addition to /var/log into the Fluentd DaemonSet. The Fluentd component collects log files in the /var/log/containers directory of Kubernetes worker nodes. The /var/log/containers directory may contain symbolic links to files located outside the /var/log directory. If the host path directory containing the log files is located outside of /var/log , the Fluentd DaemonSet must have the volume mount of that directory to collect the logs. |
No |
elasticsearchURL |
string |
The target OpenSearch URLs. Specify this option in this format. The default http://vmi-system-es-ingest-oidc:8775 is the VMI OpenSearch URL. |
No |
elasticsearchSecret |
string |
The secret containing the credentials for connecting to OpenSearch. This secret needs to be created in the verrazzano-install namespace prior to creating the Verrazzano custom resource. Specify the OpenSearch login credentials in the username and password fields in this secret. Specify the CA for verifying the OpenSearch certificate in the ca-bundle field, if applicable. The default verrazzano is the secret for connecting to the VMI OpenSearch. |
No |
oci |
OCILoggingConfiguration |
The Oracle Cloud Infrastructure Logging configuration. |
No |
Field |
Type |
Description |
Required |
source |
string |
The source host path. |
Yes |
destination |
string |
The destination path on the Fluentd Container, defaults to the source host path. |
No |
readOnly |
Boolean |
Specifies if the volume mount is read-only, defaults to true . |
No |
Oracle Cloud Infrastructure Logging Configuration
Field |
Type |
Description |
Required |
systemLogId |
string |
The OCID of the Oracle Cloud Infrastructure Log that will collect system logs. |
Yes |
defaultAppLogId |
string |
The OCID of the Oracle Cloud Infrastructure Log that will collect application logs. |
Yes |
apiSecret |
string |
The name of the secret containing the Oracle Cloud Infrastructure API configuration and private key. |
No |
Keycloak Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Keycloak will be installed. |
No |
mysql |
MySQLComponent |
Contains the MySQL component configuration needed for Keycloak. |
No |
MySQL Component
OpenSearch Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then OpenSearch will be installed. |
No |
installArgs |
OpenSearchInstallArgs list |
A list of values to use during OpenSearch installation. Each argument is specified as either a name/value or name/valueList pair. For sample usage, see Customize OpenSearch. |
No |
OpenSearch Install Args
Name |
Type |
ValueType |
Description |
Required |
nodes.master.replicas |
NameValue |
string |
The number of master node replicas. |
No |
nodes.master.requests.memory |
NameValue |
string |
The master node memory request amount expressed as a Quantity. |
No |
nodes.ingest.replicas |
NameValue |
string |
The number of ingest node replicas. |
No |
nodes.ingest.requests.memory |
NameValue |
string |
The ingest node memory request amount expressed as a Quantity. |
No |
nodes.data.replicas |
NameValue |
string |
The number of data node replicas. |
No |
nodes.data.requests.memory |
NameValue |
string |
The data node memory request amount expressed as a Quantity. |
No |
nodes.data.requests.storage |
NameValue |
string |
The data storage request amount expressed as a Quantity. |
No |
OpenSearch Dashboards Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then OpenSearch Dashboards will be installed. |
No |
Prometheus Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Prometheus will be installed. |
No |
Grafana Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Grafana will be installed. |
No |
Kiali Component
Field |
Type |
Description |
Required |
enabled |
Boolean |
If true, then Kiali will be installed. |
No |