Fleet API reference

Detailed documentation on the fleet API

Packages:

fleet.kurator.dev/v1alpha1

Package v1alpha1 contains API Schema definitions for the fleet v1alpha1 API group

Resource Types:

Fleet

Fleet represents a group of clusters, it is to consistently manage a group of clusters.

Field Description
apiVersion
string
fleet.kurator.dev/v1alpha1
kind
string
Fleet
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
FleetSpec
clusters
[]Kubernetes core/v1.ObjectReference

Clusters represents the clusters that would be registered to the fleet.

plugin
PluginConfig
(Optional)

Plugin defines the plugins that would be installed in the fleet.

status
FleetStatus

BackupConfig

(Appears on: PluginConfig)

BackupConfig defines the configuration for backups.

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart configuration of the backup engine. The default value is:

chart:
repository: https://vmware-tanzu.github.io/helm-charts
name: velero
version: 5.0.2
storage
BackupStorage

Storage provides details on where the backup data should be stored.

extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs provides the extra chart values for the backup engine chart. For example, use the following configuration to change the image tag or pull policy:

extraArgs:
image:
repository: velero/velero
tag: v1.11.1
pullPolicy: IfNotPresent

BackupStorage

(Appears on: BackupConfig)

Field Description
location
BackupStorageLocation

Location specifies where the backup data will be stored.

secretName
string

The structure of the secret varies depending on the object storage provider:

BackupStorageLocation

(Appears on: BackupStorage)

Field Description
bucket
string

Bucket specifies the storage bucket name.

provider
string

Provider specifies the storage provider type (e.g., aws, huaweicloud, gcp, azure).

endpoint
string

Endpoint provides the endpoint URL for the storage.

region
string
(Optional)

Region specifies the region of the storage.

config
map[string]string
(Optional)

Config is a map for additional provider-specific configurations. # region: # s3ForcePathStyle: # s3Url: # kmsKeyId: # resourceGroup: # The ID of the subscription containing the storage account, if different from the cluster’s subscription. (Azure only) # subscriptionId: # storageAccount: # publicUrl: # Name of the GCP service account to use for this backup storage location. Specify the # service account here if you want to use workload identity instead of providing the key file.(GCP only) # serviceAccount: # Option to skip certificate validation or not if insecureSkipTLSVerify is set to be true, the client side should set the # flag. For Velero client Command like velero backup describe, velero backup logs needs to add the flag –insecure-skip-tls-verify # insecureSkipTLSVerify:

ChartConfig

(Appears on: BackupConfig, Config, DistributedStorageConfig, FlaggerConfig, GrafanaConfig, KyvernoConfig, PrometheusConfig, SubMarinerOperatorConfig, ThanosConfig)

Field Description
repository
string
(Optional)

Repository defines the repository of chart. Default value depends on the kind of the component.

name
string
(Optional)

Name defines the name of the chart. Default value depends on the kind of the component.

version
string
(Optional)

Version defines the version of the chart. Default value depends on the kind of the component.

Config

(Appears on: FlaggerConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the TrafficRoutingProvider. For Example, using the following configuration to change the version of nginx installed.

repo: https://kubernetes.github.io/ingress-nginx
version: 4.10.0
extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for TrafficRoutingProvider’s chart. You can pass in values according to your needs. For Example, using the following configuration to change the port that Prometheus uses to scrape metrics.

values:
controller:
podAnnotations:
prometheus.io/port: 10378

Device

(Appears on: StorageDeviceSelection)

Device represents a disk to use in the cluster

Field Description
name
string
(Optional)
config
map[string]string
(Optional)

DistributedStorage

(Appears on: DistributedStorageConfig)

Field Description
dataDirHostPath
string
(Optional)

The path on the host where config and data can be persisted. If the storagecluster is deleted, please clean up the configuration files in this file path. e.g. /var/lib/rook

monitor
MonSpec
(Optional)

Monitor is the daemon that monitors the status of the ceph cluster. Responsible for collecting cluster information, updating cluster information, and publishing cluster information. Including monmap, osdmap, PGmap, mdsmap, etc. A spec for mon related options

manager
MgrSpec
(Optional)

Manager is the daemon runs alongside monitor daemon,to provide additional monitoring and interfaces to external monitoring and management systems. A spec for mgr related options

storage
StorageScopeSpec
(Optional)

A spec for available storage in the cluster and how it should be used

DistributedStorageConfig

(Appears on: PluginConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart configuration of the distributed storage engine. The default value is:

chart:
repository: https://charts.rook.io/release
name: rook
version: 1.11.11
storage
DistributedStorage

Storage provides detailed settings for unified distributed storage.

extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs provides the extra chart values for rook chart. For example, use the following configuration to change the pull policy:

extraArgs:
image:
pullPolicy: Always

Endpoints ([]string alias)

(Appears on: FleetStatus)

FlaggerConfig

(Appears on: PluginConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the flagger. default value is

chart:
repository: oci://ghcr.io/fluxcd/charts
name: flagger
version: 1.x
extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for flagger chart. For Example, using following configuration to change replica count.

extraArgs:
flagger:
replicaCount: 2
trafficRoutingProvider
Provider

TrafficRoutingProvider defines traffic routing provider. And Kurator will install flagger in trafficRoutingProvider’s namespace For example, If you use istio as a provider, flager will be installed in istio’s namespace istio-system. And if you use istio as a provider, you need to install it manually. Otherwise, you can configure it in ProviderConfig (or use the default configuration) and Kurator will automatically deploy it. Other provider will be added later.

publicTestloader
bool

PublicTestloader defines whether to install the publictestloader or not. In addition to the public testloader you can configure here, you can also specify a private testloader in the Application.Spec.SyncPolicies.Rollout.TestLoader

config
Config
(Optional)

ProviderConfig defines the helm configuration for the TrafficRoutingProvider. You can pass in a custom helm configuration to install the TrafficRoutingProvider And default value is in ./pkg/fleet-manager/manifests/plugins/ Currently only used for Kuma and Nginx

FleetPhase (string alias)

(Appears on: FleetStatus)

FleetSpec

(Appears on: Fleet)

FleetSpec defines the desired state of the fleet

Field Description
clusters
[]Kubernetes core/v1.ObjectReference

Clusters represents the clusters that would be registered to the fleet.

plugin
PluginConfig
(Optional)

Plugin defines the plugins that would be installed in the fleet.

FleetStatus

(Appears on: Fleet)

FleetStatus defines the observed state of the fleet

Field Description
credentialSecret
string

CredentialSecret is the secret name that holds credentials used for accessing the fleet control plane.

phase
FleetPhase
(Optional)

Phase represents the current phase of fleet. E.g. Pending, Running, Terminating, Failed, Ready, etc.

reason
string
(Optional)

A brief CamelCase message indicating details about why the fleet is in this state.

pluginEndpoints
map[ string ][ Endpoints ]

PluginEndpoints is the endpoints of the plugins.

readyClusters
int32

Total number of ready clusters, ready to deploy .

unReadyClusters
int32

Total number of unready clusters, not ready for use.

GrafanaConfig

(Appears on: PluginConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the grafana. default value is

chart:
repository: oci://registry-1.docker.io/bitnamicharts
name: grafana
version: 8.2.33
extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for Grafana chart. For Example, using following configuration to change replica count.

extraArgs:
grafana:
replicaCount: 2

KyvernoConfig

(Appears on: PolicyConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the kyverno. default value is

chart:
repository: https://kyverno.github.io/kyverno/
name: kyverno
version: 3.0.0
podSecurity
PodSecurityPolicy
(Optional)

PodSecurity defines the pod security configuration for the kyverno.

extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for Kyverno chart. For Example, using following configuration to change image pull policy.

extraArgs:
image:
pullPolicy: Always

MetricConfig

(Appears on: PluginConfig)

Field Description
thanos
ThanosConfig

Thanos defines the configuration for the thanos querier and store gateway.

prometheus
PrometheusConfig

Prometheus defines the configuration for the prometheus installation in the clusters observed by the thanos, by default thanos sidecar will be installed in thanos sidecar mode.

MgrSpec

(Appears on: DistributedStorage)

Field Description
count
int
(Optional)

Count is the number of manager to run Default is two, one for use and one for standby.

annotations
map[string]string
(Optional)

The annotation-related configuration to add/set on each Pod related object. Including Pod, Deployment.

labels
map[string]string
(Optional)

The label-related configuration to add/set on each Pod related object. Including Pod, Deployment.

placement
Placement
(Optional)

The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).

MonSpec

(Appears on: DistributedStorage)

Field Description
count
int
(Optional)

Count is the number of Ceph monitors. Default is three and preferably an odd number.

annotations
map[string]string
(Optional)

The annotation-related configuration to add/set on each Pod related object. Including Pod, Deployment.

labels
map[string]string
(Optional)

Similar to Annotation, but more graphical than Annotation. The label-related configuration to add/set on each Pod related object. Including Pod, Deployment.

placement
Placement
(Optional)

The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).

Node

(Appears on: StorageScopeSpec)

Each individual node can specify configuration to override the cluster level settings and defaults. If a node does not specify any configuration then it will inherit the cluster level settings.

Field Description
name
string
(Optional)

Name should match its kubernetes.io/hostname label

StorageDeviceSelection
StorageDeviceSelection

(Members of StorageDeviceSelection are embedded into this type.)

(Optional)

Specify which storage drives the osd deployed in this node can manage.

ObjectStoreConfig

(Appears on: ThanosConfig)

Field Description
secretName
string

SecretName is the name of the secret that holds the object store configuration. The path of object store configuration must be objstore.yml

Placement

(Appears on: MgrSpec, MonSpec)

Placement is the placement for an object

Field Description
nodeAffinity
Kubernetes core/v1.NodeAffinity
(Optional)

NodeAffinity is a group of node affinity scheduling rules

podAffinity
Kubernetes core/v1.PodAffinity
(Optional)

PodAffinity is a group of inter pod affinity scheduling rules

podAntiAffinity
Kubernetes core/v1.PodAntiAffinity
(Optional)

PodAntiAffinity is a group of inter pod anti affinity scheduling rules

tolerations
[]Kubernetes core/v1.Toleration
(Optional)

The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator

topologySpreadConstraints
[]Kubernetes core/v1.TopologySpreadConstraint
(Optional)

TopologySpreadConstraint specifies how to spread matching pods among the given topology

PluginConfig

(Appears on: FleetSpec)

Field Description
metric
MetricConfig
(Optional)

Metric defines the configuration for the monitoring system installation and metrics collection..

grafana
GrafanaConfig
(Optional)

Grafana defines the configuration for the grafana installation and observation.

policy
PolicyConfig

Policy defines the configuration for the ploicy management.

backup
BackupConfig

Backup defines the configuration for the backup engine(Velero).

distributedStorage
DistributedStorageConfig

DistributedStorage define the configuration for the distributed storage(Implemented with Rook)

flagger
FlaggerConfig

Flagger defines the configuration for the kurator rollout engine.

submariner
SubMarinerOperatorConfig

SubMarinerOperator defines the configuration for the kurator network management.

PodSecurityPolicy

(Appears on: KyvernoConfig)

Field Description
standard
string
(Optional)

Standard defines the pod security standard. More details: https://kubernetes.io/docs/concepts/security/pod-security-standards

severity
string
(Optional)

Severity indicates policy check result criticality in a policy report.

validationFailureAction
string
(Optional)

ValidationFailureAction indicates the action to take when a pod creation fails to validate. For more info https://kyverno.io/docs/writing-policies/validate/#validation-failure-action

PolicyConfig

(Appears on: PluginConfig)

Field Description
kyverno
KyvernoConfig
(Optional)

Kyverno defines the configuration for the kyverno installation and policy management.

PrometheusConfig

(Appears on: MetricConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the prometheus. default value is

chart:
repository: oci://registry-1.docker.io/bitnamicharts
name: kube-prometheus
version: 8.9.1
nodeExporter
PrometheusExporterConfig
(Optional)

NodeExporter defines the configuration for the node exporter.

kubeStateMetrics
PrometheusExporterConfig
(Optional)

KubeStateMetrics defines the configuration for the kube-state-metrics.

extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for Prometheus chart. For Example, using following configuration to create a ServiceMonitor to monitor prometheus itself.

extraArgs:
prometheus:
serviceMonitor:
enabled: true

PrometheusExporterConfig

(Appears on: PrometheusConfig)

Field Description
enabled
bool

Enabled indicates whether the exporters are enabled.

Provider (string alias)

(Appears on: FlaggerConfig)

Provider only can be istio now. TODO: add Linkerd, APP Mesh, NGINX, Kuma, Gateway, Gloo

StorageDeviceSelection

(Appears on: Node, StorageScopeSpec)

Field Description
devices
[]Device
(Optional)

List of devices to use as storage devices A list of individual device names belonging to this node to include in the storage cluster e.g. sda or /dev/disk/by-id/ata-XXXX

StorageScopeSpec

(Appears on: DistributedStorage)

Field Description
nodes
[]Node
(Optional)
useAllNodes
bool
(Optional)

indicating if all nodes in the cluster should be used for storage according to the cluster level storage selection and configuration values. If individual nodes are specified under the nodes field, then useAllNodes must be set to false.

StorageDeviceSelection
StorageDeviceSelection

(Members of StorageDeviceSelection are embedded into this type.)

Select device information used by osd. For more information see the design of the selection below.

SubMarinerOperatorConfig

(Appears on: PluginConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart configuration of the submariner operator. The default value is

chart:
repository: https://submariner-io.github.io/submariner-charts/charts
name: submariner-operator
version: 0.18.0
targetNamespace: submariner-operator
extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for submariner, and example will be provided in the future.

extraArgs:
broker:
globalnet: true
submariner:
serviceDiscovery: true
natEnabled: false
brokerCluster
string
(Optional)

BrokerCluster is the name of cluster in which the broker will be installed. If the broker cluster is not specified, the first cluster in the fleet will be used as the broker cluster.

clusterCidrs
map[string]string

ClusterCidrs records the clustercidr of each cluster.

serviceCidrs
map[string]string

ServiceCidrs records the servicecidr of each cluster.

globalcidrs
map[string]string
(Optional)

Globalcidrs records the globalcidr of each cluster in a virtual network Globalnet. Each cluster must use distinct globalCidr that don’t conflict or overlap with any other cluster If the globalcidr is not specified, Globalnet will be disabled.

ThanosConfig

(Appears on: MetricConfig)

Field Description
chart
ChartConfig
(Optional)

Chart defines the helm chart config of the thanos. default value is

chart:
repository: oci://registry-1.docker.io/bitnamicharts
name: thanos
version: 12.5.1
objectStoreConfig
ObjectStoreConfig

ObjectStoreConfig is the secret reference of the object store. Configuration must follow the definition of the thanos: https://thanos.io/tip/thanos/storage.md/.

extraArgs
Kubernetes /apiextensions/v1.JSON
(Optional)

ExtraArgs is the set of extra arguments for Thanos chart. For Example, using following configuration to enable query frontend.

extraArgs:
queryFrontend:
enabled: true

This page was automatically generated with gen-crd-api-reference-docs