This documentation section describes the cluster definition format in detail. Here's the top-level structure of a
cluster definition:
Property | Description | annotations | map: Optionally specifies cluster annotations. Label names and values must follow the
Kubernetes conventions
and the neonkube.io/ prefix is reserved by NeonKUBE.
|
container | object: Customizes the cluster's container registry configuration.
|
datacenter | string: Identifies the datacenter. This defaults to empty string for on-premise clusters
or the region for clusters deployed to the cloud.
NOTE: The name may include only letters, numbers, periods, dashes, and underscores. |
deployment | object: Optionally used by ClusterFixture and possibly custom tools for customizing
cluster and node names to avoid conflicts.
|
description | string: Optionally describes the cluster for humans. This may be a string up to 256 characters long.
|
features | object: Specifies optional features to be installed in the cluster.
|
hosting | object: Specifies hosting related settings (e.g. the cloud provider). This defaults to
null indicating that the cluster will be hosted on private servers.
|
isDesktop | bool: Indicates that the definition describes a NeonDESKTOP cluster. This is set to true
by NeonDESKTOP when it deploys a desktop cluster and isn't typically set by cluster operators.
|
jobs | object: Specifies the schedules for cluster jobs.
|
kubernetes | object: Specifies Kubernetes cluster options.
|
latitude | decimal: Optionally specifies the latitude of the cluster location. This is a value
between -90 and +90 degrees.
NOTE: Latitude and Longitude must both be specified together or
not at all. |
longitude | decimal: Optionally specifies the longitude of the cluster location. This is a value
between -180 and +180 degrees.
NOTE: Latitude and Longitude must both be specified together or
not at all. |
monitor | object: Specifies options for the cluster integrated monitoring stack.
|
name | string: Specifies the cluster name.
NOTE:
Names may include only letters, numbers, periods, dashes, and underscores and
may be up to 24 characters long. Some hosting environments enforce length limits
on resource names that we derive from the cluster name, so please limit your
cluster name to 24 characters. |
network | object: Describes the cluster's network configuration.
|
nodeOptions | object: Specifies host node options, including Linux package manager settings.
|
nodes | map: Describes the cluster nodes.
|
packageProxy | string: Optionally specifies one or more APT proxy/cache servers the cluster will use to install
and update Linux packages. These are endpoints like HOSTNAME:PORT or ADDRESS.PORT
of a apt-cacher-ng or other package proxy server. The port is generally set to 3142
Multiple proxies may be specified by separating them with spaces. This defaults to
referencing the apt-cacher-ng instances running on the control-plane nodes.
NOTE:
The cluster nodes are configured to failover to different proxies or to hit the
default Linux distribution package mirror directly if any or all of the caches
specified are unavailable. The package caches will be tried in the order they are listed. This essentially
makes the first cache primary, with the others acting as backups. |
purpose | string: Describes how the cluster is being used. Supported values are: unspecified,
development, production, stage, and test
|
resourceTags | array: Optionally specifies custom tags that will be attached to cluster resources in cloud
hosting environments. These tags are intended to help you manage your cloud resources
as well as help organize your cost reporting.
NOTE: Currently, this is only supported for clusters deployed to AWS and Azure. |
security | object: Specifies cluster security options.
Property | Description | passwordLength | integer: cluster nodes are configured with a cryptographically random root account password.
This defaults to 20 characters. The minumum length is 8.
|
|
storage | object: Specifies cluster storage related options for Minio and OPenEBS.
storage: minio: volumesPerNode: 4 volumeSize: "2 GiB" openEbs: engine: "default" nfsSize: "10 GiB"
Property> | Description> | storage.minio.volumesPerNode | Specifies the number of volumes per server. This defaults to 4. | storage.minio.volumeSize | The size of each volume to be mounted to each server. This defaults
to 2 GiB. | storage.openEbs.engine | string: Specifies which OpenEBS engine will be deployed within the cluster.
Supported values are default, hostpath, cstor, jiva, or
mayastor.
This defaults to default where NeonKUBE will try to choose a reasonable
storage engine for your cluster. Currently, this selects hostpath for
single-node clusters or jiva for multi-node clusters. | storage.openEbs.nfsSize | string: Specifies the size of the NFS file system to be created for the cluster.
This defaults to 10 GiB and cannot be any smaller.
|
|
timeSources | array: Specifies the NTP time sources to be configured for the cluster. These are the
FQDNs or IP addresses of the sources. This defaults to pool.ntp.org.
The cluster control-plane nodes will be configured to synchronize their time with these
time sources and the worker nodes will be configured to synchronize their time
with the control-plane nodes. |