Default Configuration File Options

Lists the options that can be included in an Oracle CNE CLI default configuration file.

The default configuration file must be in YAML format and saved to $HOME/.ocne/defaults.yaml. The file can contain any of the following options:

autoStartUI

Sets whether a tunnel to the Oracle CNE UI service is created when a cluster is instantiated, and starts the default browser to load the UI. For example:

autoStartUI: true
bootVolumeContainerImage

The container image registry and tag that contains an Oracle Container Host for Kubernetes (OCK) bootable image. The default is container-registry.oracle.com/olcne/ock:1.32. For example:

bootVolumeContainerImage: container-registry.oracle.com/olcne/ock:1.32
clusterDefinition

The path to a cluster configuration file. Provide this extra layer of configuration for clusters that use complex configuration that isn't provided by this default configuration file. For example:

clusterDefinition: mycluster.yaml
clusterDefinitionInline

Specifies in-line configuration options. Provide this extra layer of configuration for clusters that use complex configuration that isn't provided by this default configuration file. This option can't be used with clusterDefinition. For example:

clusterDefinitionInline: |
  key1: value1
  key2: value2
cni

The Container Networking Interface (CNI) provider to install when the cluster is instantiated. The value can be any CNI available with Oracle CNE, or none if another CNI is to be deployed either manually or using an application catalog.

Note:

Multus can't be used as the primary CNI. Multus is available as an application in the default application catalog. If you install the Multus application, set this option to none.

For example:

cni: flannel
cni: none
communityCatalog

Sets whether the Artifact Hub application catalog is installed. If this is set to true, the catalog is installed. If this is set to false, the catalog isn't installed. The default is false. For example:

communityCatalog: true
ephemeralCluster

Allows customization of any short-lived clusters that might be spawned to perform tasks that can't be completed on the host system. This is often used for changing boot OCK images or deploying Kubernetes Cluster API resources. The options you can use are:

name

The name of the cluster. For example:

ephemeralCluster:
  name: mycluster
preserve

Sets whether the ephemeral cluster is automatically deleted after the work is complete. The default is false, so ephemeral clusters are deleted after they're used. For example:

ephemeralCluster:
  preserve: true
node

Sets the configuration for the VMs. For example:

ephemeralCluster:
  node:
    cpus: 2
    memory: 4GB
    storage: 15GB
extraIgnition

The path to an Ignition file that includes extra Ignition information to include when creating a cluster, or joining nodes to a cluster. The Ignition information must comply with the Ignition specification v3.4.0, as listed in the upstream Ignition documentation, and written in YAML using the Butane Fedora CoreOS Specification v1.5.0, as described in the upstream Butane documentation. For example:

extraIgnition: /home/username/.ocne/ignition.ign
extraIgnitionInline

Extra Ignition information to include when creating a cluster, or joining nodes to a cluster. The Ignition information must comply with the Ignition specification v3.4.0, as listed in the upstream Ignition documentation, and written in YAML using the Butane Fedora CoreOS Specification v1.5.0, as described in the upstream Butane documentation. The format must be:

extraIgnitionInline: |
  key1: value1
  key2: value2
  ...
headless

Sets whether the Oracle CNE UI is installed. If this is set to true, the UI isn't installed. The default is false. For example:

headless: true
kubeApiServerBindPort

Sets the port on which the Kubernetes API Server is exposed. The default is 6443. For example:

kubeApiServerBindPort: 6443
kubeApiServerBindPortAlt

Sets the port on which the Kubernetes API Server listens when deploying a Highly Available cluster using the Keepalived and NGINX load balancer. The default is 6444. For example:

kubeApiServerBindPortAlt: 6444
kubeconfig

The path to the kubeconfig file to use for operations that require a running cluster. For example:

kubeconfig: /home/username/.kube/kubeconfig.utilitycluster
kubeProxyMode

The mode for kube-proxy. This can be set to either iptables or ipvs. The default is iptables. For example:

kubeProxyMode: ipvs

For more information on the kube-proxy modes, see the upstream Kubernetes documentation.

kubernetesVersion

This defines the Kubernetes version. The default is the latest version. For example:

kubernetesVersion: 1.32
osRegistry

Combined with osTag, this identifies an OSTree image in a container registry. It specifies the OSTree transport and the container registry URI.

Possible prefixes for the transport are:

ostree-image-signed
ostree-remote-image
ostree-unverified-image
ostree-unverified-registry

The default value is:

osRegistry: ostree-unverified-registry:container-registry.oracle.com/olcne/ock-ostree
osTag

Combined with osRegistry, this identifies an OSTree image in a container registry. It specifies the tag for the image. For example:

osTag: 1.32
password

A hashed password for the OCK image user (ocne) to authenticate with cluster nodes. For example:

password: $6$jfkldjfsd$n1YMnpdxlGXO...

Surrounding the password with quotes is optional.

You can use the openssl utility to create a hashed password. For example, to generate a hashed password with the SHA512 algorithm and an automatic salt:

openssl passwd -6 -salt password

To generate a SHA512 hashed password using the provided salt phrase:

openssl passwd -6 -salt saltphrase password
podSubnet

The subnet to use for the pod network. The CNI is automatically configured to use this subnet. For example:

podSubnet: 10.244.0.0/16
providers

Specifies provider configuration options. For example:

providers:
  byo: 
    options
  libvirt:
    options
  none:
    options
  oci:
    options
  olvm:
    options

The options for each provider are listed in:

proxy

The proxy server information. This information is configured on the Kubernetes nodes. For example:

proxy:
  httpsProxy: http://myproxy.example.com:2138
  httpProxy: http://myproxy.example.com:2138
  noProxy: .example.com,127.0.0.1,localhost,169.254.169.254,10.96.0.0/12,10.244.0.0/16
quiet

Sets whether to reduce the messages printed by the ocne command. If this is set to true, the messages are reduced. If set to false, the messages aren't reduced. The default is false. For example:

quiet: true
registry

Sets the registry from which to provision container images. The default is container-registry.oracle.com. For example:

registry: myregistry.example.com
serviceSubnet

The subnet to use for the service network. The default is 10.96.0.0/12. For example:

serviceSubnet: 10.96.0.0/12
sshPublicKey

The public key of an RSA key pair for the OCK image user (ocne). Paste the contents of the public key file.

For example:

sshPublicKey: | 
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...
sshPublicKeyPath

The path to the public key of an RSA key pair for the OCK image user (ocne) to authenticate with cluster nodes.

sshPublicKeyPath: /home/username/.ssh/id_rsa.ocne

Bring Your Own Provider Options

The options for the byo provider are:

automaticTokenCreation

If set to true, any time a join token is required it's created automatically as part of the command. If it's set to false, the token must be created manually. For example:

providers:
  byo:
    automaticTokenCreation: false
networkInterface

Sets the network interface to which the CNI and other Kubernetes services bind. This option is required. For example:

providers:
  byo:
    networkInterface: enp1s0

libvirt Provider Options

The options for the libvirt provider are:

controlPlaneNode

Sets the configuration options for control plane nodes. To specify sizes, use:

  • M: megabytes

  • G: gigabytes

  • Mi: mebibytes

  • Gi: gibibytes

For example:
providers:
  libvirt:
    controlPlaneNode:
      cpu: 2
      memory: 16Gi
      storage: 8Gi
network

The name of the virtual network to use for domains. For example:

providers:
  libvirt:
    network: bridge-1
sshKey

The path to an SSH key to use for SSH connections. For example:

providers:
  libvirt:
    sshKey: /home/username/.ssh/id_rsa.ocne
storagePool

The name of the storage pool to use for OCK images. For example:

providers:
  libvirt:
    storagePool: mypool
uri

The default value for the libvirt connection URI. For example, for a local connection:

providers:
  libvirt:
    uri: qemu:///system

And for a remote connection:

providers:
  libvirt:
    uri: qemu+ssh://user@host/system
workerNode

Sets the configuration options for worker nodes. To specify sizes, use:

  • M: megabytes

  • G: gigabytes

  • Mi: mebibytes

  • Gi: gibibytes

For example:
providers:
  libvirt:
    workerNode:
      cpu: 2
      memory: 16Gi
      storage: 8Gi

OCI Provider Options

The options for the oci provider are:

compartment

The OCI compartment in which to deploy resources. This can be either the path to a compartment (for example, mytenancy/mycompartment), or the OCID of a compartment. For example:

providers:
  oci:
    compartment: OCID
controlPlaneShape

The name of the shape to use for compute instances when creating control plane nodes. For example:

providers:
  oci:
    controlPlaneShape:
      shape: VM.Standard.E4.Flex
      ocpus: 2
imageBucket

The OCID or name of a bucket to use to store OCK boot images when they're uploaded to OCI object storage. The default name is ocne-images. For example:

providers:
  oci:
    imageBucket: ocne-images
images

The OCI OCIDs of the OCK images to use as the initial disk image for any compute resources. Sets the options for the amd64 and arm64 architectures. For example:

providers:
  oci:
    images:
      amd64: OCID
      arm64: OCID
kubeconfig

The path to the kubeconfig file to use for the target management cluster. For example:

providers:
  oci:
    kubeconfig: /home/username/.kube/kubeconfig.mgmtcluster
loadBalancer

The OCIDs for subnets to use when provisioning OCI load balancers for default deployments. For example:

providers:
  oci:
    loadBalancer:
      subnet1: OCID
      subnet2: OCID
namespace

The Kubernetes namespace where the Kubernetes Cluster API resources are to be deployed.

providers:
  oci:
    namespace: mynamespace
selfManaged

Sets whether a cluster is self-managing. If set to true, the cluster contains the necessary controllers and resources to manage its own life cycle. If set to false, or not set, those resources remain in the initial administration cluster. For example:

providers:
  oci:
    selfManaged: true
profile

Sets the OCI CLI profile to use. This is the name of the profile in the OCI CLI configuration file. The default profile is DEFAULT. For example:

providers:
  oci:
    profile: MYTENANCY
vcn

The OCID of the Virtual Cloud Network to use when creating load balancers for default deployments.

providers:
  oci:
    vcn: OCID
workerShape

The name of the shape to use for compute instances when creating worker nodes. For example:

providers:
  oci:
    workerShape:
      shape: VM.Standard.E4.Flex
      ocpus: 2

Oracle Linux Virtualization Manager Provider Options

The options for the olvm provider are:

controlPlaneMachine

Sets the options for the control plane VM nodes. The options are:

olvmNetwork: The network settings for VMs, which includes:

  • networkName: The Oracle Linux Virtualization Manager network name. This must exist in the Oracle Linux Virtualization Manager instance.

  • vnicName: The Oracle Linux Virtualization Manager VNIC name. This is optional.

  • vnicProfileName: The Oracle Linux Virtualization Manager VNIC profile name. This must exist in the Oracle Linux Virtualization Manager instance.

olvmOvirtClusterName: The name of the Oracle Linux Virtualization Manager cluster. This must exist in the data center.

virtualMachine: Sets the options for VMs. The options are:

  • cpu: Information about the CPU. The options are:

    • topology:

      • architecture: The architecture of the CPU. The default is x86_64.

      • cores: The number of cores. The default is 2.

      • sockets: The number of sockets. The default is 2.

      • threads: The number of threads. The default is 1.

  • memory: The size of memory for VMs. The default is 7GB.

  • network: Sets the network options for VMs. The options are:

    • gateway: The IP address of the network gateway for VMs.

    • interface: The network interface name for VMs. This is optional. The default is enp1s0.

    • interfaceType: The network interface type for VMs. This is optional. The default is virtio.

    • ipv4: The IPv4 network configuration for VMs. This is mandatory. The options are:

      • subnet: The IPv4 subnet.

      • ipAddresses: The IPv4 addresses that can be used. This is a comma separated list, with any combination of CIDRs, IP ranges (inclusive), and IPs. Spaces after commas are optional. For example:

        192.0.2.0/24, 192.0.2.10-192.0.2.20, 192.0.2.21
    • ipv6: The IPv6 network configuration for VMs. This is optional. The options are:

      • ipAddresses: The IPv6 addresses that can be used. This is a comma separated list. Spaces after commas are optional. This option is required if IPv6 is used. For example:

        2001:db8:0f01::1-2001:db8:0f01::9/64

vmTemplateName: The name of the Oracle Linux Virtualization Manager VM template. This must exist in the Oracle Linux Virtualization Manager instance.

For example:

providers:
  olvm:
    controlPlaneMachine:
      olvmOvirtClusterName: Default
      vmTemplateName: ock-1.32
      olvmNetwork:
        networkName: kvm-vlan
        vnicName: nic-1
        vnicProfileName: kvm-vlan
      virtualMachine:
        memory: "8GB"
        cpu:
          topology:
            cores: 8
            sockets: 10
            threads: 2
        network:
          gateway: 1.2.3.1
          interface: enp1s0
          interfaceType: virtio
          ipv4:
            subnet: 192.0.0.0/24
            ipAddresses: 192.0.2.0/24, 192.0.2.10-192.0.2.20, 192.0.2.21
          ipv6:
            ipAddresses: 2001:db8:0f01::1-2001:db8:0f01::9/64
namespace

The Kubernetes namespace where the Kubernetes Cluster API resources are to be deployed in the management cluster. The default is olvm. For example:

providers:
  olvm:
    namespace: mynamespace
olvmDatacenterName

The name of the Oracle Linux Virtualization Manager data center instance. This option is mandatory. For example:

providers:
  olvm:
    olvmDatacenterName: myolvm
olvmOCK

Sets the information needed to upload the Oracle Linux Virtualization ManagerOCK image using the ocne image upload command, and includes:

  • diskName: The name of the disk to be created in the storage domain when the image is upload. This is the disk name you specify when you create a VM template.

  • diskSize: The provisioned virtual disk size name to be used for the disk created in the storage domain. This is the disk space to be allocated for the VM, regardless of the size of the image, on disk. For example, the image might be 2.5GB, but the provisioned size could be 16GB.

  • storageDomainName: The name of an existing Oracle Linux Virtualization Manager storage domain where the image is to be uploaded.

For example:

providers:
  olvm:
    ovirtOCK:
      storageDomainName: olvm-data
      diskName: ock-1.32
      diskSize: 16GB
olvmOvirtAPIServer

Sets the options for the Oracle Linux Virtualization Manager cluster inside the data centre. This information is used to connect to the Oracle Linux Virtualization Manager oVirt REST API server. The options are:

caConfigMap: Sets the name and namespace of the ConfigMap containing the CA Certificate. This is optional, and includes:

  • name: The name of the ConfigMap. The default is olvm-ca.

  • namespace: The namespace for the ConfigMap. The default is olvm.

credentialsSecret: Sets the name and namespace of the Secret containing the credentials needed to communicate with the Oracle Linux Virtualization Manager server, which includes:

  • name: The name of the Secret. The default is olvm-creds.

  • namespace: The namespace for the Secret. The default is olvm.

insecureSkipTLSVerify: A Boolean to set whether to skip the validity check for the server's certificate when connecting to the Oracle Linux Virtualization Manager server Set this to true if the CA isn't needed or used. This is optional. The default is false.

serverCA: The Oracle Linux Virtualization Manager root Certificate Authority (CA), inline. This is mutually exclusive with the serverCAPath option. For information on obtaining the CA Certificate, see the oVirt upstream documentation.

serverCAPath: The path to the Oracle Linux Virtualization Manager root Certificate Authority (CA) Certificate. This is mutually exclusive with the serverCA option.

serverURL: The URL to connect to the Oracle Linux Virtualization Manager data centre. This option is mandatory.

For example:

providers:
  olvm:
    olvmOvirtAPIServer:
      serverURL: https://my.example.com/ovirt-engine
      serverCAPath: "/home/username/olvm/ca.crt"
      credentialsSecret:
        name: olvm-creds
        namespace: olvm
      caConfigMap:
        name: olvm-ca
        namespace: olvm
      insecureSkipTLSVerify: false
ovirtCsiDriver

Sets the configuration for the ovirt-csi-driver. These settings are optional. By default, the ovirt-csi-driver driver is automatically installed, along with the required namespace, credential Secret, CA Certificate, ConfigMap, and CsiDriver resources. The configuration options are:

caConfigmapName: Sets the name of the ConfigMap containing the CA Certificate.

controllerPluginName: Sets the name of the deployment for the controller plugin, which is part of the driver. The default is ovirt-csi-controller.

credsSecretName: Sets the name of the Secret containing the credentials needed to communicate with the Oracle Linux Virtualization Manager server. The default is ovirt-csi-creds.

csiDriverName: Sets the name of the CsiDriver. This name is used when you create a StorageClass (the value of the provisioner field). The default is csi.ovirt.org.

install: A Boolean to set whether to install the driver and the required resources. The default is true.

namespace: Sets the namespace where the driver, and all related resources, are created. The default is ovirt-csi.

nodePluginName: Sets the name of the daemonset for the node plugin, which is part of the driver. The default is ovirt-csi-node.

For example:

providers:
  olvm:
    ovirtCsiDriver:
      install: true
      caConfigmapName: ovirt-csi-ca.crt
      controllerPluginName: ovirt-csi-controller
      credsSecretName: ovirt-csi-creds 
      csiDriverName: csi.ovirt.org 
      namespace: ovirt-csi
      nodePluginName: ovirt-csi-node
workerMachine

Sets the options for the worker VM nodes. The options are:

olvmNetwork: The network settings for VMs, which includes:

  • networkName: The Oracle Linux Virtualization Manager network name. This must exist in the Oracle Linux Virtualization Manager instance.

  • vnicName: The Oracle Linux Virtualization Manager VNIC name. This is optional.

  • vnicProfileName: The Oracle Linux Virtualization Manager VNIC profile name. This must exist in the Oracle Linux Virtualization Manager instance.

olvmOvirtClusterName: The name of the Oracle Linux Virtualization Manager cluster. This must exist in the data center.

virtualMachine: Sets the options for VMs. The options are:

  • cpu: Information about the CPU. The options are:

    • topology:

      • architecture: The architecture of the CPU. The default is x86_64.

      • cores: The number of cores. The default is 2.

      • sockets: The number of sockets. The default is 2.

      • threads: The number of threads. The default is 1.

  • memory: The size of memory for VMs. The default is 16GB.

  • network: Sets the network options for VMs. The options are:

    • gateway: The IP address of the network gateway for VMs.

    • interface: The network interface name for VMs. This is optional. The default is enp1s0.

    • interfaceType: The network interface type for VMs. This is optional. The default is virtio.

    • ipv4: The IPv4 network configuration for VMs. This is mandatory. The options are:

      • subnet: The IPv4 subnet.

      • ipAddresses: The IPv4 addresses that can be used. This is a comma separated list, with any combination of CIDRs, IP ranges (inclusive), and IPs. Spaces after commas are optional. For example:

        192.0.2.0/24, 192.0.2.10-192.0.2.20, 192.0.2.21
    • ipv6: The IPv6 network configuration for VMs. This is optional. The options are:

      • ipAddresses: The IPv6 addresses that can be used. This is a comma separated list. Spaces after commas are optional. This option is required if IPv6 is used. For example:

        2001:db8:0f01::1-2001:db8:0f01::9/64

vmTemplateName: The name of the Oracle Linux Virtualization Manager VM template. This must exist in the Oracle Linux Virtualization Manager instance.

For example:

providers:
  olvm:
    workerMachine:
      olvmOvirtClusterName: Default
      vmTemplateName: ock-1.32
      olvmNetwork:
        networkName: kvm-vlan
        vnicName: nic-1
        vnicProfileName: kvm-vlan
      virtualMachine:
        memory: "16GB"
        cpu:
          topology:
            cores: 6
            sockets: 6
            threads: 3
        network:
          gateway: 1.2.3.1
          interface: enp1s0
          interfaceType: virtio
          ipv4:
            subnet: 192.0.0.0/24
            ipAddresses: 192.0.2.0/24, 192.0.2.21-192.0.2.30, 192.0.2.32
          ipv6:
            ipAddresses: 2001:db8:0f01::1-2001:db8:0f01::9/64