Service v1 API reference

ClusterState

Cluster specific state properties

FieldTypeLabelDescription
metaStateMeta
stateClusterStatus
namestringWhich cluster definition this entry belongs to
nodesNodeStaterepeatedData of nodes for this instance
endpointsEndpointStaterepeatedData of endpoints for this instance

EndpointState

Endpoint specific state properties

FieldTypeLabelDescription
metaStateMeta
stateEndpointStatus
namestringWhich endpoint definition this entry belongs to

InstanceState

Contains the data of this resource

FieldTypeLabelDescription
metaStateMeta
stateInstanceStatus
definitionDefinitionReferenceReference to the service definition to provision from (required)
clustersClusterStaterepeatedData of clusters for this instance

NodeState

Node specific state properties

FieldTypeLabelDescription
metaStateMeta
stateNodeStatus

State

State collection for provision resources

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
stateInstanceStateInstance state of this resource (required)
statusStateStatusStatus of this resource

StateList

StateList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsStaterepeatedItems is a list of this resource (required)

StateMeta

FieldTypeLabelDescription
actualstringEffective name of the resource provision
uidstringUID of the resource provision

StateStatus

DefinitionStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

ClusterSettings

Cluster specific settings properties

FieldTypeLabelDescription
metaRuntimeSettingsMetaInclude the meta options
namestringName of the cluster
sizingSizingSettingsSizing range available for the cluster
nodesNodeSettingsAvailable nodes properties
endpointsEndpointSettingsrepeatedAvailable endpoint properties

DependencySettings

Dependency setting properties

FieldTypeLabelDescription
metaRuntimeSettingsMetaInclude the meta options
clustersClusterSettingsrepeatedAvailable clusters and their properties in this dependency
dependenciesDependencySettings.DependenciesEntryrepeatedDependencies of this dependency

DependencySettings.DependenciesEntry

FieldTypeLabelDescription
keystring
valueDependencySettings

EndpointSettings

Endpoint specific properties

FieldTypeLabelDescription
metaSettingsMetaInclude the meta options
namestringName of the endpoint
networkstringSpecifies how the nodes of this endpoint are consolidated: - loadbalanced: the nodes are exposed through a cluster address so incoming traffic is loadbalanced using the kubernetes networking - direct: each node address is exposed itself so incoming traffic is addressed directly to the node
portsProtoPortrepeatedEndpoints for this cluster grouped by endpoint group

NodePresetting

FieldTypeLabelDescription
settingsKeyValuerepeatedSettings for this resource which fullfills the jsonschema of the definitions settings
limitsLimitsLimits for the node

NodeSettings

Node setting properties

FieldTypeLabelDescription
metaSettingsMetaInclude the meta options

RuntimeSettingsMeta

FieldTypeLabelDescription
metaSettingsMetaInclude the meta options
limitsLimitsLimits configuration on this resource level

Settings

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specSettingsSpecSpec of this resource (required)
statusSettingsStatusStatus of this resource

SettingsList

DefinitionList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsSettingsrepeatedItems is a list of this resource (required)

SettingsMeta

FieldTypeLabelDescription
schemabytesSchema of the settings for this resource level to fullfill (schemaless)

SettingsSpec

DefinitionSpec contains the spec of this resource

FieldTypeLabelDescription
metaRuntimeSettingsMetaInclude the meta options
namestringName of the service
versionstringVersion of the service (required)
clustersClusterSettingsrepeatedAvailable clusters and their properties in this service
dependenciesSettingsSpec.DependenciesEntryrepeatedDependencies of this service

SettingsSpec.DependenciesEntry

FieldTypeLabelDescription
keystring
valueDependencySettings

SettingsStatus

DefinitionStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

SetupPresetting

FieldTypeLabelDescription
initialNodePresettingrepeatedInitial node setup defaults. Only used on fresh deployment.
additionalNodePresettingOptionally adjust the node setup defaults for additional nodes. Can be omitted if the nodes definition options already provide the fitting defaults.

SizingSettings

ClusterDefinition size settings

FieldTypeLabelDescription
rangeSizingRangeSizing range for the cluster
setupSetupPresettingDeployment defaults

ClusterProvision

FieldTypeLabelDescription
metaRuntimeProvisionMeta
namestringWhich cluster definition this entry belongs to
targetstringWhich target kubernetes this cluster is assigned to. If not set, the same as this Provision.
nodesNodeProvisionrepeatedEffective provisioning spec to track the node resources of this cluster. On a fresh Provision creation this can be used to define the initial size by creating the wished amount of empty nodes. If not set, the default size of the cluster in the definition is used. To resize the cluster add empty nodes or remove existing nodes. The min, max and the increment for the sizing must always be honored
endpointsEndpointProvisionrepeatedEffective provisioning spec to track the provided endpoints of this cluster.

DependencyProvision

FieldTypeLabelDescription
settingsbytesSettings for this resource which fullfills the jsonschema of the definitions settings (schemaless)
dependenciesDependencyProvision.DependenciesEntryrepeatedDependencies of this dependency

DependencyProvision.DependenciesEntry

FieldTypeLabelDescription
keystring
valueDependencyProvision

EndpointProvision

FieldTypeLabelDescription
metaProvisionMeta
namestringWhich endpoint definition this entry belongs to
dnsNamestringDefine the hostname if the endpoint has a different actual name due to migrations. If empty, actual is used.

NodeProvision

FieldTypeLabelDescription
metaRuntimeProvisionMeta
dnsNamestringDefine the hostname if the node has a different actual name due to migrations. If empty, actual is used.
minionstringForce the node to be scheduled on a specific kubernetes minion. Setting this field ignores any automatic scheduling and the node will fail if there is no such minion.

Provision

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specProvisionSpecSpec of this resource (required)
statusProvisionStatusStatus of this resource

ProvisionList

ProvisionList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsProvisionrepeatedItems is a list of this resource (required)

ProvisionMeta

FieldTypeLabelDescription
actualstringThe effective resource name. Usually not set on new provisioning so this fields uniqueness can be guaranteed. If not set, a random name based on the definitions name inheritance is assigned
labelsProvisionMeta.LabelsEntryrepeatedLabels for this resource
annotationsProvisionMeta.AnnotationsEntryrepeatedAnnotations for this resource
flagsKeyValuerepeatedFlags for this resource
settingsbytesSettings for this resource which fullfills the jsonschema of the definitions settings (schemaless)
extensionsProvisionMeta.ExtensionsEntryrepeatedExtensions for this resource

ProvisionMeta.AnnotationsEntry

FieldTypeLabelDescription
keystring
valuestring

ProvisionMeta.ExtensionsEntry

FieldTypeLabelDescription
keystring
valueExtensionEntry

ProvisionMeta.LabelsEntry

FieldTypeLabelDescription
keystring
valuestring

ProvisionSpec

ProvisionSpec contains the spec of this resource

FieldTypeLabelDescription
metaRuntimeProvisionMeta
definitionDefinitionReferenceReference to the service definition to provision from (required)
clustersClusterProvisionrepeatedEffective provisioning spec to track the cluster resources. On a fresh Provision creation this can be used to define the initial amount of clusters by creating the wished amount of empty clusters. If not set, one of each cluster defined in the definition is created. To add a cluster add an empty cluster and to remove a cluster remove an existing cluster.
dependenciesProvisionSpec.DependenciesEntryrepeatedEffective provisioning spec for dependencies. Only used for initial deployment. Updating the provision spec of the dependency can only be done in the resulting dependency provision.

ProvisionSpec.DependenciesEntry

FieldTypeLabelDescription
keystring
valueDependencyProvision

ProvisionStatus

ProvisionStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status
initCompleteboolInitialisation complete
progressstringA simple progress indicator of the current transition. If not empty a transition is ongoing and the value contains an integer from 0 up to 100 with percent sign. Empty means there is no transition or the transition is finished (whether successful or not) and thus the expected result should be checked with the phase field.

RuntimeProvisionMeta

FieldTypeLabelDescription
metaProvisionMetaInclude the meta options
limitsLimitsLimits for the node

ClusterConfig

Cluster specific config properties

FieldTypeLabelDescription
metaConfigRuntimeMeta
namestringWhich cluster definition this entry belongs to
nodesNodeConfigrepeatedData of nodes for this instance
endpointsEndpointConfigrepeatedData of endpoints for this instance

Config

Config collection for provision resources

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
dataInstanceConfigInstance data of this resource (required)
statusConfigStatusStatus of this resource

ConfigExtension

FieldTypeLabelDescription
valuesConfigExtension.ValuesEntryrepeatedValues for this extension
optionsConfigExtension.OptionsEntryrepeatedOptions and/or configuration hints for this extension

ConfigExtension.OptionsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigExtension.ValuesEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigList

ConfigList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsConfigrepeatedItems is a list of this resource (required)

ConfigMeta

FieldTypeLabelDescription
actualstringActual name of the resource provision
labelsConfigMeta.LabelsEntryrepeatedLabels for this resource
annotationsConfigMeta.AnnotationsEntryrepeatedAnnotations for this resource
flagsConfigMeta.FlagsEntryrepeatedFlags for this resource
settingsConfigMeta.SettingsEntryrepeatedConfigs for this resource
extensionsConfigMeta.ExtensionsEntryrepeatedExtensions for this resource

ConfigMeta.AnnotationsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigMeta.ExtensionsEntry

FieldTypeLabelDescription
keystring
valueConfigExtension

ConfigMeta.FlagsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigMeta.LabelsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigMeta.SettingsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigRuntimeMeta

FieldTypeLabelDescription
metaConfigMetaInclude the meta options
limitsConfigRuntimeMeta.LimitsEntryrepeatedLimits for the resource

ConfigRuntimeMeta.LimitsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

ConfigStatus

DefinitionStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

EndpointConfig

Endpoint specific config properties

FieldTypeLabelDescription
metaConfigMeta
namestringWhich endpoint definition this entry belongs to

InstanceConfig

Contains the data of this resource

FieldTypeLabelDescription
metaConfigRuntimeMeta
modestringMode to use to apply changes (required)
definitionInstanceConfig.DefinitionEntryrepeatedReference to the service definition to provision from
credentialsInstanceConfig.CredentialsEntryrepeatedReferences of credential secrets
clustersClusterConfigrepeatedData of clusters for this instance

InstanceConfig.CredentialsEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

InstanceConfig.DefinitionEntry

FieldTypeLabelDescription
keystring
valueOwnedValue

NodeConfig

Node specific config properties

FieldTypeLabelDescription
metaConfigRuntimeMeta

Cluster

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specClusterSpecSpec of this resource (required)
statusClusterStatusWithEndpointsStatus of this resource

ClusterList

ClusterList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsClusterrepeatedItems is a list of this resource (required)

ClusterSpec

ClusterSpec contains the spec of this resource

FieldTypeLabelDescription
instancestringThe instance name this cluster belongs to and is inheriting spec from. (required)
topologyqueriesTopologyQueryrepeatedTopologyQueries allows to specify queries to get information about its surroundings. Will be written and updated in a configmap which the pods can consume
flagsNodeFlagrepeatedA list of flags to be set in the container
limitsLimitsLimits of the resulting container
podspeck8s.io.api.core.v1.PodSpecPodSpec to use for this node which must match core/v1.PodSpec.

ClusterStatus

ClusterStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

ClusterStatusWithEndpoints

ClusterStatus is the status for this resource

FieldTypeLabelDescription
statusClusterStatus
endpointsClusterStatusWithEndpoints.EndpointsEntryrepeatedEndpoints for this cluster grouped by endpoint group

ClusterStatusWithEndpoints.EndpointsEntry

FieldTypeLabelDescription
keystring
valueEndpointsGrouped

Endpoint

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specEndpointSpecSpec of this resource (required)
statusEndpointStatusWithVoStatus of this resource

EndpointBackend

EndpointBackend info and address

FieldTypeLabelDescription
nodestringName of the node
readyboolWhether the node is ready and accepting traffic
minionstringMinion name this node runs on

EndpointList

EndpointList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsEndpointrepeatedItems is a list of this resource (required)

EndpointSpec

EndpointSpec contains the spec of this resource

FieldTypeLabelDescription
clusterstringThe cluster name this endpoint belongs to and is inheriting spec from. (required)
groupstringAn endpoint must belong to a group, an alias name of the purpose. A service can have or may need multiple endpoints. The meaning of multiple endpoints depends on the service definition or the service protocol. (required)
flagsNodeFlagrepeatedA list of flags to be set in the container
networkstringSpecifies how the nodes of this endpoint are consolidated: - loadbalanced: the nodes are exposed through a cluster address so incoming traffic is loadbalanced using the kubernetes networking - direct: each node address is exposed itself so incoming traffic is addressed directly to the node
filterKeyValuerepeatedFlag filters for the endpoint which the nodes must meet
servicespeck8s.io.api.core.v1.ServiceSpecServiceSpec to use for this endpoint which must match core/v1.ServiceSpec.
dnsEndpointstringAssign the endpoint to this DNSEndpoint. Updates the target IP once available.

EndpointStatus

EndpointStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status
addressesEndpointAddressrepeatedList of endpoint addresses
portsProtoPortrepeatedList of endpoint ports
backendsEndpointBackendrepeatedList of backend addresses. Only available if network type is loadbalanced.

EndpointStatusWithVo

EndpointStatus with visual only fields

FieldTypeLabelDescription
statusEndpointStatus
portsVostringPort list for visual only representation
fqdnsVostringFQDN list for visual only representiation
ipsVostringIP list for visual only representation
backendsVostringBackend list for visual only representation

ClusterDefinition

ClusterDefinition configuration options

FieldTypeLabelDescription
metaRuntimeDefinitionMetaInclude the meta options
sizingClusterSizingSettings for cluster size, resizing and transitions
topologyqueriesTopologyQueryrepeatedTopologyQueries allows to specify queries to get information about its surroundings. Will be written and updated in a configmap which the pods can consume
providesEndpointDefinitionrepeatedEndpoint configuration to describe the nodes will provide a service through this endpoint
consumesEndpointAssignmentrepeatedEndpoints from dependencies to consume
nodesNodeDefinitionConfiguration options available for all nodes

ClusterSizing

ClusterDefinition size settings

FieldTypeLabelDescription
rangeSizingRangeSizing range for the cluster
specificSpecificSizingDefinitionDEPRECATED! Specific sizing definitions to set specifics on creation of the nodes
setupSetupPredefinitionDeployment defaults

Definition

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specDefinitionSpecSpec of this resource (required)
statusDefinitionStatusStatus of this resource

DefinitionList

DefinitionList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsDefinitionrepeatedItems is a list of this resource (required)

DefinitionMeta

FieldTypeLabelDescription
namestringName of this resource. Often used as prefix for resulting objects
labelsDefinitionMeta.LabelsEntryrepeatedLabels of this resource
annotationsDefinitionMeta.AnnotationsEntryrepeatedAnnotations of this resource
flagsAssignedFlagrepeatedFlags of this resource
settingsSettingDefinitionrepeatedSettings for this resource
extensionsDefinitionMeta.ExtensionsEntryrepeatedExtensions for this resource

DefinitionMeta.AnnotationsEntry

FieldTypeLabelDescription
keystring
valuestring

DefinitionMeta.ExtensionsEntry

FieldTypeLabelDescription
keystring
valueExtensionEntry

DefinitionMeta.LabelsEntry

FieldTypeLabelDescription
keystring
valuestring

DefinitionSpec

DefinitionSpec contains the spec of this resource

FieldTypeLabelDescription
metaRuntimeDefinitionMetaInclude the meta options
versionstringVersion of the service
dependenciesDefinitionSpec.DependenciesEntryrepeatedIf this service requires another service or an operator, specify which services should be setup as well. The key will be the alias to that dependency
clustersClusterDefinitionrepeatedList of clusters for this service
extendsDefinitionReferencerepeatedThis service inherits and extends the spec from those services
includesDefinitionReferencerepeatedThis service includes the specs of a onlyincludable services
operatorOperatorThis definition is an operator
onlyincludeboolThis definition is not a valid service, it can only be included and not extended. It is allowed to be incomplete and some validation checks are ignored

DefinitionSpec.DependenciesEntry

FieldTypeLabelDescription
keystring
valueRunDependency

DefinitionStatus

DefinitionStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

EndpointAssignment

Endpoint description this cluster consumes

FieldTypeLabelDescription
dependencystringThe alias of the dependency
endpointstringThe name of the endpoint as described in the dependency definition

EndpointDefinition

Endpoint description this cluster provides

FieldTypeLabelDescription
metaDefinitionMetaInclude the meta options
networkstringSpecifies how the nodes of this endpoint are consolidated: - loadbalanced: the nodes are exposed through a cluster address so incoming traffic is loadbalanced using the kubernetes networking - direct: each node address is exposed itself so incoming traffic is addressed directly to the node
exposedboolSetting exposed defines that this endpoint is intended to be consumed from other services within the kubernetes and its address is written to the status of this cluster
filterKeyValuerepeatedFlag filters for the endpoint which the nodes must meet. If network is set to loadbalanced, all nodes matching filter have combined an endpoint. If set to direct, each node matching the filter gets its own endpoint.
servicespeck8s.io.api.core.v1.ServiceSpecServiceSpec allows to specify the template for Services. Some fields will be overridden by properties in this resource.

NodeDefinition

FieldTypeLabelDescription
metaRuntimeDefinitionMetaInclude the meta options

NodePredefinition

FieldTypeLabelDescription
flagsKeyValuerepeatedFlags for this resource
settingsKeyValuerepeatedSettings for this resource which fullfills the jsonschema of the definitions settings
limitsLimitsLimits for the node

Operator

Mark this service as an operator

FieldTypeLabelDescription
versionstringDefine which event api version this operator supports
flagsAssignedFlagrepeatedFlags to add to event api Operations. Used to further divide a group of service to specific operators, e.g. there is a next epoch of configuration.
TODO: Onlyonce logic needs to be combined with shared service logic, for now, all operator are only once hardcoded // Whether this operator can exist multiple times bool onlyonce = 3;

RunDependency

Which dependency is required to run this service, you can define any other service. The service-controller will automatically detect if the service is an operator and operates accordingly.

FieldTypeLabelDescription
dependencyDefinitionReferenceInclude the dependency options
waitboolWhether this service should wait until this dependency is finished and ready before starting to build this service. If set to false this dependency is built concurrently with this service.
settingsSettingOverriderepeatedSet settings for this dependency directly.

RuntimeDefinitionMeta

FieldTypeLabelDescription
metaDefinitionMetaInclude the meta options
limitsLimitsLimits for the node
podspeck8s.io.api.core.v1.PodSpecPodSpec allows to specify the template for Pods. Some fields will be overridden by properties in this resource.

SettingDefinition

Define which settings this service accepts

FieldTypeLabelDescription
namestringThe name of this setting (required)
requiredboolWhether this setting is required to be provided. At least one source in from must provide a value.
fromstringrepeatedA list of sources from where this setting can be set. The order decides what and when a source can overwrite a value. The latter overrides the former only if it returns a non-empty value otherwise the previous value is kept. Types of sources. User: Value may be provided by the user during provision. Env: The environment configmaps may contain a value to be set. Event: Value may be provided by the init operation events. Additional info about sources. Env: Configmaps follow itself an overwrite routine, where the most precise annotated value is returned in the following order: clusterwide provider defaults, servicespecific defaults (via servicename), customerspecific defaults (via namespace), combined service- & customerspecific defaults (via namespace+servicename). UID: During provision the provisions UID is used.
schemabytesProvide JSON schema validation for this setting. At least define a type so the validation can at least verify the type of this setting. If default is defined in the schema, that default is used. Obviously only possible if this flag is not required. If it is required, then a source in from must provide a value and the default here has no effect. (schemaless)

SettingOverride

Override a dependency setting. If a setting of a dependency is not overridden, the setting is taken as-is. These settings can be overridden by a static value, by forwarding a setting value from this current definition.

FieldTypeLabelDescription
namestringThe name of the dependant setting (required)
fromstringFrom which type the value is provided.
valuebytesSet as a static value (schemaless)
settingstringForward the value of a setting from this definition

SetupPredefinition

FieldTypeLabelDescription
initialNodePredefinitionrepeatedInitial node setup defaults. Only used on fresh deployment.
additionalNodePredefinitionOptionally adjust the node setup defaults for additional nodes. Can be omitted if the nodes definition options already provide the fitting defaults.

SpecificSizingDefinition

FieldTypeLabelDescription
initialNodeDefinitionrepeatedInitial node setup options. Only used on fresh deployment.
additionalNodeDefinitionNode setup options when creating additional nodes.

Environment

The environment definition for any arbitrary data

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
databytesArbitrary structural data (required) (schemaless)

EnvironmentList

DefinitionList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsEnvironmentrepeatedItems is a list of this resource (required)

Instance

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specInstanceSpecSpec of this resource (required)
statusInstanceStatusStatus of this resource

InstanceList

InstanceList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsInstancerepeatedItems is a list of this resource (required)

InstanceSpec

InstanceSpec contains the spec of this resource

FieldTypeLabelDescription
dependenciesInstanceSpec.DependenciesEntryrepeatedDependencies of the current instance. Maps alias to dependency instance name. Defining a dependency allows clusters of this instance to consume their endpoints.
flagsNodeFlagrepeatedA list of flags to be set in the container
credentialsInstanceSpec.CredentialsEntryrepeatedCredentials map consisting of secret identificator to effective secret resource name

InstanceSpec.CredentialsEntry

FieldTypeLabelDescription
keystring
valuestring

InstanceSpec.DependenciesEntry

FieldTypeLabelDescription
keystring
valuestring

InstanceStatus

InstanceStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status

AssignedFlag

An AssignedFlag is annotated to a resource within the hierarchy and is propagated to its children. Flags are propagated to the container and make resources searchable by the topology lookup. A resource inherits all flags from the parent, but a same flag set in the resource always overrides the flag inherited

FieldTypeLabelDescription
flagFlagInclude the flag options
tostringA setting can be written to a label where it is searchable by the topology lookup (but charset and length limited) or to an annotation where these limitations dont apply (but not searchable)

CommonStatus

Status fields all resource status

FieldTypeLabelDescription
phasestringPhase to describe the overall current status
reasonstringA brief human-readable message indicating details about why this resource is in this state.

DefinitionReference

Reference to a definition

FieldTypeLabelDescription
vendorstringVendor of the referenced definition. If ommited same vendor as this definition
namestringName of the referenced definition within the vendor
versionstringVersion of the referenced definition. If omitted latest found version

EndpointAddress

EndpointAddress contain the addresses to a network node

FieldTypeLabelDescription
ipstringThe primary IP (the first returned address from the underlying resource, which can depend on the configuration order). Holds only one address if both v4 and v6 are configured.
fqdnstringThe FQDN of this endpoint address

EndpointsGrouped

List of the endpoint addresses with their ports

FieldTypeLabelDescription
portsProtoPortrepeated
addressesEndpointAddressrepeatedList of endpoint addresses

ExtensionEntry

Extend additional data which is not handled by AEP except the merging default behaviour

FieldTypeLabelDescription
valuesKeyValuerepeatedValues for this extension
optionsExtensionEntry.OptionsEntryrepeatedOptions and/or configuration hints for this extension

ExtensionEntry.OptionsEntry

FieldTypeLabelDescription
keystring
valuestring

Flag

A Flag can be set from a static value or can lookup the value used in the setting

FieldTypeLabelDescription
keystringThe key name of this flag (required)
fromstringFrom which type the value is provided. With value the contents from property value is used. With setting the setting name from property setting is looked up. With environment the environment is inherited in the following order: clusterwide provider defaults, servicespecific defaults (via servicename), customerspecific defaults (via namespace), combined service- & customerspecific defaults (via namespace+servicename). In case of event the operator must have provided the value.
valuebytesSet this static value if value is requested from (schemaless)
settingstringOverride the setting name to lookup instead of the key name
envstringOverride the env name to lookup instead of the key name
eventstringOverride the event name to lookup instead of the key name

KeyValue

Simple key value property

FieldTypeLabelDescription
keystringThe key (required)
valuebytesThe value in any type (required) (schemaless)

Limits

Limits of the resulting container

FieldTypeLabelDescription
cpuk8s.io.apimachinery.pkg.api.resource.QuantityCPU count limit
ramk8s.io.apimachinery.pkg.api.resource.QuantityRAM size limit
rootfsk8s.io.apimachinery.pkg.api.resource.QuantityRootFS size limit

NodeFlag

Flags to be assigned to the node

FieldTypeLabelDescription
kvKeyValueInclude key value
tostringWhether the flag is written to a label where it is searchable by the topology lookup (but charset and length limited) or to an annotation where these limitations dont apply (but not searchable) (required)

OwnedValue

Value property with owner annotation

FieldTypeLabelDescription
valuebytesThe value in any type (required) (schemaless)
ownerstringOwner of this config key. If a component is not the owner of this config it must keep it as-is. (required)
reasonbytesAdditional info to reason why this config was set or changed by the owner. The owner can decide any type and structure of the data. (schemaless)

ProtoPort

Protocol and port address info

FieldTypeLabelDescription
namestringName of the port
protocolstringProtocol (required) (enum: TCP;UDP)
portint32Port (required)

SizingRange

Cluster sizing properties

FieldTypeLabelDescription
initialuint32Initial cluster size if not specified exactly in the provision
incrementuint32Cluster size changes only in this increment, also used as decrement. If set to 0, no resizing can be done.
minimumuint32Minimum cluster size
maximumuint32Maximum cluster size

TopologyQuery

TopologyQuery describe a query to look for cluster members Possible types example:

/etc/facter/facts.d/aep-topology.yaml


dns: (format: dict) # authoritative DNS servers (BIND slaves) FQDN: IP # v1_use_host_ip=true ? host_ip : main_ip FQDN: IP … monitoring: FQDN (format: fqdn) foreman: FQDN # for puppetmaster openstack_present: BOOL (format: bool) # e.g. Keystone host present/defined cloudera_manager: FQDN services: (groupby: role) # by clusterid ROLE: (format: array) fqdn: [ FQDN, … ] ip: [ IP, … ] ROLE: fqdn: [ FQDN, … ] ip: [ IP, … ] … single_service: (format: entry) fqdn: FQDN ip: IP initial lookup: one dataset is either complete or missing complete means:

  • all matching pods are running
  • dns fqdn for these pods exists and pointing to that pod lifecycle changes: one dataset changes if the affected change is complete
  • container error: old state stays
  • reducing: state is complete when deletion is registered. cleanup process is irrelevant
  • growing: state is complete when creation is completely finished. If two transitions happen in the same time, the state is complete when both transitions are completele In other words, return the new state when the desired state is completely applied, otherwise keep the old For the formats fqdn, bool and entry is expected that only one result can exist, otherwise return error
    FieldTypeLabelDescription
    namestringKey name of this query, will also be the key of the dataset in the result (required)
    flagsKeyValuerepeatedFlags to which the query have to match (AND chained)
    formatstringFormat specifies the format the result is outputted
    groupbystringrepeatedGroupBy specifies to group by these flag keys in specified order
    scopestringScope allows to define within which scope this query applies. Cluster limits the query within the nodes in this exact cluster. Instance limits the query within the nodes for all clusters in this exact instance. Global has no limits and is only allowed for operators. If empty, cluster scope is applied.

Node

The service definition in a specific version

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta(required)
specNodeSpecSpec of this resource (required)
statusNodeStatusStatus of this resource

NodeList

NodeList is a struct holding items of this resource

FieldTypeLabelDescription
typek8s.io.apimachinery.pkg.apis.meta.v1.TypeMetaType of this resource (required)
metadatak8s.io.apimachinery.pkg.apis.meta.v1.ListMeta(required)
itemsNoderepeatedItems is a list of this resource (required)

NodeSpec

NodeSpec contains the spec of this resource

FieldTypeLabelDescription
clusterstringThe cluster name this node belongs to and is inheriting spec from. (required)
flagsNodeFlagrepeatedA list of flags to be set in the container
limitsLimitsLimits of the resulting container
podspeck8s.io.api.core.v1.PodSpecPodSpec to use for this node which must match core/v1.PodSpec.
dnsEndpointstringAssign the node to this DNSEndpoint. Updates the target IP once available. (required)
minionstringForce the node to be scheduled on a specific kubernetes minion. Setting this field ignores any automatic scheduling and the node will fail if there is no such minion.

NodeStatus

NodeStatus is the status for this resource

FieldTypeLabelDescription
commonCommonStatusInclude the common status
podPhasestringThe pod phase as status
readyboolWhether the pod is ready for incoming traffic. The readiness probe, if defined in the pod, has succeeded.
minionstringWhich minion the node is running on
addressEndpointAddressInclude the endpoint address
portsProtoPortrepeatedList of ports exposed from the container

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)