Kind: SGShardedCluster
listKind: SGShardedClusterList
plural: sgshardedclusters
singular: sgshardedcluster
shortNames sgscl
StackGres PostgreSQL sharded clusters are created using the SGShardedCluster Custom Resource.
Example:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
postgres:
version: 'latest'
type: citus
database: database
coordinator:
instances: 1
pods:
persistentVolume:
size: '5Gi'
shards:
clusters: 2
instancesPerCluster: 1
pods:
persistentVolume:
size: '5Gi'
See also Sharded Cluster Creation section.
Property |
Description |
|---|---|
| apiVersion string |
stackgres.io/v1alpha1 Constraints: required, immutable |
| kind string |
SGShardedCluster Constraints: required, immutable |
| metadata object |
Refer to the Kubernetes API documentation for the fields of the metadata field.Constraints: required, updatable |
| spec object |
Specification of the desired behavior of a StackGres sharded cluster.
Constraints: required, updatable |
| status object |
Current status of a StackGres sharded cluster.
Constraints: optional, updatable |
Specification of the desired behavior of a StackGres sharded cluster.
Property |
Description |
|---|---|
| coordinator object |
The coordinator is a StackGres cluster responsible for coordinating data storage and access from the shards.
Constraints: required, updatable |
| database string |
The database name that will be created and used across all node and where “partitioned” (distributed) tables will live in.
Constraints: required, updatable |
| postgres object |
This section allows to configure Postgres features
Constraints: required, updatable |
| shards object |
The shards are a group of StackGres clusters where the partitioned data chunks are stored.
When referring to the cluster in the descriptions below it applies to any shard’s StackGres cluster.
Constraints: required, updatable |
| configurations object |
Sharded cluster custom configurations.
Constraints: optional, updatable |
| distributedLogs object |
StackGres features a functionality for all pods to send Postgres, Patroni and PgBouncer logs to a central (distributed) location, which is in turn another Postgres database. Logs can then be accessed via SQL interface or from the web UI. This section controls whether to enable this feature or not. If not enabled, logs are sent to the pod's standard output.
Constraints: optional, updatable |
| initialData object |
Sharded cluster initialization data options. Sharded cluster may be initialized empty, or from a sharded backup restoration.
This field can only be set on creation.
Constraints: optional, immutable |
| metadata object |
Metadata information from any cluster created resources.
Constraints: optional, updatable |
| nonProductionOptions object |
Constraints: optional, updatable |
| postgresServices object |
Kubernetes services created or managed by StackGres.
Constraints: optional, updatable |
| profile string |
The profile allows changing in a convenient place a set of configuration defaults that affect how the cluster is generated.
All those defaults can be overwritten by setting the correspoinding fields. Available profiles are:
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: production |
| replicateFrom object |
Make the sharded cluster a read-only standby replica allowing replication from another sharded cluster and acting as a relay.
Changing this section is allowed to fix issues or to change the replication source. Removing this section convert the sharded cluster in a normal sharded cluster where the standby leader of each SGCluster is converted into a primary instance. Constraints: optional, updatable |
| replication object |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups. The total number of instances is always specified by Constraints: optional, updatable |
| type string |
The sharding technology that will be used for the sharded cluster.
Available technologies are:
Citus Citus is a PostgreSQL extension that transforms Postgres into a distributed database—so you can achieve high performance at any scale. See also https://github.com/citusdata/citus DDP DDP (Distributed Data Partitioning) allows you to distribute data across different physical nodes to improve the query performance of high data volumes, taking advantage of distinct nodes’ resources. Using the entry point named coordinator in charge of sending/distributing the queries to different nodes named shards. ShardingSphere Apache ShardingSphere is an ecosystem to transform any database into a distributed database system, and enhance it with sharding, elastic scaling, encryption features & more. StackGres implementation of ShardingSphere as a sharding technology uses the ShardingSphere Proxy as an entry point to distribute SQL traffic among the shards. This implementation requires the ShardingSphere Operator to be installed and will create a ComputeNode
Constraints: optional, updatable |
The coordinator is a StackGres cluster responsible for coordinating data storage and access from the shards.
Property |
Description |
|---|---|
| instances integer |
Number of StackGres instances for the cluster. Each instance contains one Postgres server.
Out of all of the Postgres servers, one is elected as the primary, the rest remain as read-only replicas.
If sharding type is See also https://shardingsphere.apache.org/oncloud/current/en/user-manual/cn-sn-operator/#computenode
Constraints: required, updatable Minimum: 0 |
| pods object |
Cluster pod’s configuration.
If sharding type is Constraints: required, updatable |
| autoscaling object |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources.
Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Constraints: optional, updatable |
| configurations object |
Coordinator custom configurations.
Constraints: optional, updatable |
| managedSql object |
This section allows referencing SQL scripts that will be applied to the cluster live.
If sharding type is See https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/distsql
Constraints: optional, updatable |
| metadata object |
Metadata information from coordinator cluster created resources.
If sharding type is Constraints: optional, updatable |
| replication object |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups. The total number of instances is always specified by If sharding type is Constraints: optional, updatable |
| sgInstanceProfile string |
Name of the SGInstanceProfile.
A SGInstanceProfile defines CPU and memory limits. Must exist before creating a cluster. When no profile is set, a default (1 core, 2 GiB RAM) one is used. Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Cluster pod’s configuration.
If sharding type is shardingsphere then this section will apply to the ComputeNode.
Property |
Description |
|---|---|
| persistentVolume object |
Pod’s persistent volume configuration.
If sharding type is Constraints: required, updatable |
| customContainers []object |
A list of custom application containers that run within the coordinator cluster’s Pods.
The name used in this section will be prefixed with the string See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable |
| customEnv map[string][]object |
A list of custom environment variables for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customEnvFrom map[string][]object |
A list of custom environment variables from source for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitContainers []object |
A list of custom application init containers that run within the shards cluster’s Pods. The
custom init containers will run following the defined sequence at the end of
cluster’s Pods init containers.
The name used in this section will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnv map[string][]object |
A list of custom environment variables for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnvFrom map[string][]object |
A list of custom environment variables from source for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitVolumeMounts map[string][]object |
A list of custom volume mounts for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumeMounts map[string][]object |
A list of custom volume mounts for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumes []object |
A list of custom volumes that may be used along with any container defined in
customInitContainers or customContainers sections for the coordinator.
The name used in this section will be prefixed with the string Only the following volume types are allowed: configMap, downwardAPI, emptyDir, gitRepo, glusterfs, hostPath, nfs, projected and secret Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core
Constraints: optional, updatable, may require restart |
| disableConnectionPooling boolean |
If set to
true, avoids creating a connection pooling (using PgBouncer) sidecar.
If sharding type is Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| disableEnvoy boolean |
If set to
false, creates the envoy sidecar. This sidecar is used as the edge proxy for the cluster’s Pods providing extra metrics to the monitoring layer.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| disableMetricsExporter boolean |
Deprecated use instead .spec.configurations.observability.disableMetrics.
Constraints: optional, updatable Default: false |
| disablePostgresUtil boolean |
If set to
true, avoids creating the postgres-util sidecar. This sidecar contains usual Postgres administration utilities that are not present in the main (patroni) container, like psql. Only disable if you know what you are doing.
If sharding type is Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| livenessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| managementPolicy string |
managementPolicy controls how pods are created during initial scale up, when replacing pods
on nodes, or when scaling down. The default policy is
OrderedReady, where pods are created
in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is
ready before continuing. When scaling down, the pods are removed in the opposite order.
The alternative policy is Parallel which will create pods in parallel to match the desired
scale without waiting, and on scale down will delete all pods at once.
If sharding type is Constraints: optional, updatable |
| readinessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| resources object |
Pod custom resources configuration.
Constraints: optional, updatable |
| scheduling object |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.
Constraints: optional, updatable Format: int64 |
| updateStrategy object |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Constraints: optional, updatable Default: map[type:OnlyDbOps] |
Pod’s persistent volume configuration.
If sharding type is shardingsphere then this section is ignored.
Property |
Description |
|---|---|
| size string |
Size of the PersistentVolume set for each instance of the cluster. This size is specified either in Mebibytes, Gibibytes or Tebibytes (multiples of 2^20, 2^30 or 2^40, respectively).
If sharding type is Constraints: required, updatable |
| fsGroupChangePolicy string |
fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are “OnRootMismatch” and “Always”. If not specified, “Always” is used. Note that this field cannot be set when spec.os.name is windows.
Constraints: optional, updatable |
| storageClass string |
Name of an existing StorageClass in the Kubernetes cluster, used to create the PersistentVolumes for the instances of the cluster.
If sharding type is Constraints: optional, updatable |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Pod custom resources configuration.
Property |
Description |
|---|---|
| containers map[string]object |
Resources configuration to be merged with the specified container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
| disableResourcesRequestsSplitFromTotal boolean |
When set to
true the resources requests values in fields SGInstanceProfile.spec.requests.cpu and SGInstanceProfile.spec.requests.memory will represent the resources
requests of the patroni container and the total resources requests calculated by adding the resources requests of all the containers (including the patroni container).
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| enableClusterLimitsRequirements boolean |
When enabled resource limits for containers other than the patroni container will be set just like for patroni container as specified in the SGInstanceProfile.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| failWhenTotalIsHigher boolean |
When set to
true the reconciliation of the cluster will fail if disableResourcesRequestsSplitFromTotal is not set or set to false and the sum of the CPU or memory
of all the containers except patroni is equal to or higher than the total specified in SGInstanceProfile.spec.requests.cpu or SGInstanceProfile.spec.requests.memory.
When Constraints: optional, updatable |
| initContainers map[string]object |
Resources configuration to be merged with the specified init container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Property |
Description |
|---|---|
| backup object |
Backup Pod custom scheduling and affinity configuration.
Constraints: optional, updatable, may require restart |
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector map[string]string |
NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations []object |
If specified, the pod’s tolerations.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core Constraints: optional, updatable, may require restart |
| topologySpreadConstraints []object |
TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.
Constraints: optional, updatable, may require restart |
Backup Pod custom scheduling and affinity configuration.
Property |
Description |
|---|---|
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator
Property |
Description |
|---|---|
| effect string |
Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
Constraints: optional, updatable, may require restart |
| key string |
Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
Constraints: optional, updatable, may require restart |
| operator string |
Operator represents a key’s relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
Constraints: optional, updatable, may require restart |
| tolerationSeconds integer |
TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
Constraints: optional, updatable, may require restart Format: int64 |
| value string |
Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
Constraints: optional, updatable, may require restart |
TopologySpreadConstraint specifies how to spread matching pods among the given topology.
Property |
Description |
|---|---|
| maxSkew integer |
MaxSkew describes the degree to which pods may be unevenly distributed. When
whenUnsatisfiable=DoNotSchedule, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway, it is used to give higher precedence to topologies that satisfy it. It’s a required field. Default value is 1 and 0 is not allowed.Constraints: required, updatable, may require restart Format: int32 |
| topologyKey string |
TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a “bucket”, and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is “kubernetes.io/hostname”, each Node is a domain of that topology. And, if TopologyKey is “topology.kubernetes.io/zone”, each zone is a domain of that topology. It’s a required field.
Constraints: required, updatable, may require restart |
| whenUnsatisfiable string |
WhenUnsatisfiable indicates how to deal with a pod if it doesn’t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
but giving higher precedence to topologies that would help reduce the
skew.
A constraint is considered “Unsatisfiable” for an incoming pod if and only if every possible node assignment for that pod would violate “MaxSkew” on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won’t make it more imbalanced. It’s a required field.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn’t set. Keys that don’t exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). Constraints: optional, updatable, may require restart |
| minDomains integer |
MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats “global minimum” as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won’t schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so “global minimum” is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. Constraints: optional, updatable, may require restart Format: int32 |
| nodeAffinityPolicy string |
NodeAffinityPolicy indicates how we will treat Pod’s nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
If this value is nil, the behavior is equivalent to the Honor policy. Constraints: optional, updatable, may require restart |
| nodeTaintsPolicy string |
NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.
If this value is nil, the behavior is equivalent to the Ignore policy. Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Property |
Description |
|---|---|
| method string |
Indicates the method of the update strategy. Default is
InPlace.
Constraints: optional, updatable Default: InPlace |
| schedule []object |
Indicates a list of windows of time where an update can be performed.
Constraints: optional, updatable |
| type string |
Indicates the type of the update strategy. Default is
OnlyDbOps.
Alternatively to this configuration you may specify the following annotations:
Unless The update of the Pods will be performed only if Pods are pending any change. Changes in the configuration may not require restarting the Pod and, in such cases, only
the Postgres instance will be restarted.
Constraints: optional, updatable Default: OnlyDbOps |
Indicates a window of time where an update can be performed.
Property |
Description |
|---|---|
| cron string |
A UNIX cron expression indicating the start of the window of time where the update can be performed.
Constraints: optional, updatable |
| duration string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that, together with the cron expression, indicates the end of the window of time where the update can be performed.
Constraints: optional, updatable |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources. Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Property |
Description |
|---|---|
| horizontal object |
Section to configure horizontal Pod autoscaling aspects.
Constraints: optional, updatable |
| maxAllowed object |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| minAllowed object |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| mode enum |
Allows enabling or disabling any of horizontal and vertical Pod autoscaling.
Possible values are:
Constraints: optional, updatable Enum: vertical, none Default: vertical |
| vertical object |
Section to configure vertical Pod autoscaling aspects.
Constraints: optional, updatable |
Section to configure horizontal Pod autoscaling aspects.
Property |
Description |
|---|---|
| cooldownPeriod integer |
The period in seconds before the downscale of replica instances can be triggered.
Constraints: optional, updatable Default: 300 |
| pollingInterval integer |
The interval in seconds to check if the scaleup or scaledown have to be triggered.
Constraints: optional, updatable Default: 30 |
| replicasConnectionsUsageMetricType string |
The metric type for connections used metric. See https://keda.sh/docs/latest/concepts/scaling-deployments/#triggers
Constraints: optional, updatable Default: AverageValue |
| replicasConnectionsUsageTarget string |
The target value for replicas connections used in order to trigger the upscale of replica instances.
Constraints: optional, updatable Default: 0.8 |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the higher bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the higher bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the higher bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the lower bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the lower bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the lower bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Section to configure vertical Pod autoscaling aspects.
Property |
Description |
|---|---|
| recommender string |
Recommender responsible for generating recommendation for vertical Pod autoscaling. If not specified the default one will be used.
Constraints: optional, updatable |
Coordinator custom configurations.
Property |
Description |
|---|---|
| patroni object |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is Constraints: optional, updatable |
| pooling object |
Constraints: optional, updatable |
| postgres object |
Section for postgres configuration.
Constraints: optional, updatable |
| postgresExporter object |
Section to configure the postgres_exporter component.
Constraints: optional, updatable |
| sgPoolingConfig string |
Name of the SGPoolingConfig used for this cluster. Each pod contains a sidecar with a connection pooler (currently: PgBouncer). The connection pooler is implemented as a sidecar.
If not set, a default configuration will be used. Disabling connection pooling altogether is possible if the disableConnectionPooling property of the pods object is set to true. If sharding type is Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| sgPostgresConfig string |
Name of the SGPostgresConfig used for the cluster. It must exist. When not set, a default Postgres config, for the major version selected, is used.
If sharding type is Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| shardingSphere object |
Allows specifying Sharding Sphere Proxy configuration that will extend the generated one.
This section is required when sharding type is Constraints: optional, updatable |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is shardingsphere then this section is ignored.
Property |
Description |
|---|---|
| dynamicConfig object |
Allows specifying Patroni dynamic configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/dynamic_configuration.html
The following configuration fields will be ignored:
If sharding type is Constraints: optional, updatable |
| initialConfig object |
Allows specifying Patroni configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/yaml_configuration.html
The following configuration fields will be ignored:
If sharding type is This field can only be set on creation.
Constraints: optional, immutable |
Property |
Description |
|---|---|
| pgBouncer object |
Constraints: optional, updatable |
Property |
Description |
|---|---|
| pgbouncer.ini object |
The
pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
The pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Property |
Description |
|---|---|
| databases map[string]map[string]string |
The
pgbouncer.ini (Section [databases]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
| pgbouncer map[string]string |
The
pgbouncer.ini (Section [pgbouncer]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters
Constraints: optional, updatable, may require restart |
| users map[string]map[string]string |
The
pgbouncer.ini (Section [users]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
Section for postgres configuration.
Property |
Description |
|---|---|
| postgresql.conf map[string]string |
The
postgresql.conf parameters that overwrite those specified in the referenced SGPostgresConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Section to configure the postgres_exporter component.
Property |
Description |
|---|---|
| queries object |
Section to configure the postgres_exporter queries.yaml configuration.
The queries defined here will overwrite those created by the operator. WARNING: Changing this may beak some of the functionality that depend on the query overwritten.
Constraints: optional, updatable |
Allows specifying Sharding Sphere Proxy configuration that will extend the generated one.
This section is required when sharding type is shardingsphere otherwise is ignored.
Property |
Description |
|---|---|
| mode object |
Allows configuring the Sharding Sphere Proxy mode.
Constraints: required, updatable |
| authority object |
Allows configuring the Sharding Sphere Proxy authority.
Constraints: optional, updatable |
| properties object |
Properties that will be set in the ShardingSphere Proxy configuration.
Some properties will be overwritten with the configuration generated by the operator. In particular:
Constraints: optional, updatable |
| serviceAccount object |
Section to configure ServiceAccount used by ShardingSphere operator.
You may configure a global value under operator configuration section
Constraints: optional, updatable |
| version string |
The version of the ShardingSphere Proxy. If not specified latest version available will be used.
Constraints: optional, updatable |
Allows configuring the Sharding Sphere Proxy mode.
Property |
Description |
|---|---|
| repository object |
Constraints: required, updatable |
| type string |
Allows configuring the Sharding Sphere Proxy mode type. Options available are:
When Constraints: required, updatable |
| properties object |
Properties that will be set in the ShardingSphere Proxy configuration.
Some properties will be overwritten with the configuration generated by the operator. In particular:
Constraints: optional, updatable |
Property |
Description |
|---|---|
| type string |
Allows configuring the Sharding Sphere Proxy repository type. Options available are:
When Constraints: required, updatable |
| etcd object |
Allows configuring Etcd repository for Sharding Sphere Proxy.
Constraints: optional, updatable |
| properties object |
Properties that will be set in the ShardingSphere Proxy configuration for the Repository.
Some properties will be overwritten with the configuration generated by the operator. In particular:
Constraints: optional, updatable |
| zooKeeper object |
Allows configuring ZooKeeper repository for Sharding Sphere Proxy.
Constraints: optional, updatable |
Allows configuring Etcd repository for Sharding Sphere Proxy.
Property |
Description |
|---|---|
| serverList []string |
List of Etcd servers to connect to.
Constraints: required, updatable |
Allows configuring ZooKeeper repository for Sharding Sphere Proxy.
Property |
Description |
|---|---|
| serverList []string |
List of ZooKeeper servers to connect to.
Constraints: required, updatable |
Allows configuring the Sharding Sphere Proxy authority.
Property |
Description |
|---|---|
| privilege object |
Allows configuring the Sharding Sphere Proxy authority privilege.
Constraints: optional, updatable |
| users []object |
Allows configuring extra users other than the superuser (by default superuser username is postgres).
Constraints: optional, updatable |
Allows configuring the Sharding Sphere Proxy authority privilege.
Property |
Description |
|---|---|
| type string |
Allows configuring the Sharding Sphere Proxy authority privilege type.
Constraints: optional, updatable |
| userDatabaseMappings string |
Allows configuring the mappings between users and databases.
Constraints: optional, updatable |
Allows configuring an extra user other than the superuser (by default superuser username is postgres).
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: required, updatable |
| user object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
Section to configure ServiceAccount used by ShardingSphere operator.
You may configure a global value under operator configuration section
SGConfig.spec.shardingSphere.serviceAccount.
Property |
Description |
|---|---|
| name string |
The name of the ServiceAccount used by ShardingSphere operator
Constraints: required, updatable |
| namespace string |
The namespace of the ServiceAccount used by ShardingSphere operator
Constraints: required, updatable |
This section allows referencing SQL scripts that will be applied to the cluster live.
If sharding type is shardingsphere then this section will be applied to the first cluster shard.
In this case the database postgres will also provide a foreign server called shardingsphere and
the superuser user mappings that will allow running DistQL queries using command like the following:
SELECT * FROM dblink('shardingsphere', 'SHOW STORAGE UNITS')
AS _(name text, type text, host text, port int, db text,
connection_timeout_milliseconds int, idle_timeout_milliseconds int,
max_lifetime_milliseconds int, max_pool_size int, min_pool_size int,
read_only boolean, other_attributes text);
See https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/distsql
Property |
Description |
|---|---|
| continueOnSGScriptError boolean |
If true, when any entry of any
SGScript fail will not prevent subsequent SGScript from being executed. By default is false.Constraints: optional, updatable |
| scripts []object |
A list of script references that will be executed in sequence.
Constraints: optional, updatable |
A script reference. Each version of each entry of the script referenced will be executed exactly once following the sequence defined in the referenced script and skipping any script entry that have already been executed.
Property |
Description |
|---|---|
| id integer |
The id is immutable and must be unique across all the
SGScript entries. It is replaced by the operator and is used to identify the SGScript entry.Constraints: optional, updatable |
| sgScript string |
A reference to an
SGScriptConstraints: optional, updatable |
Metadata information from coordinator cluster created resources.
If sharding type is shardingsphere then this section is applied to the ComputeNode.
Property |
Description |
|---|---|
| annotations object |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
| labels object |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups.
The total number of instances is always specified by .spec.instances.
If sharding type is shardingsphere then this section is ignored.
Property |
Description |
|---|---|
| initialization object |
Allows specifying how the replicas are initialized.
Constraints: optional, updatable |
| mode string |
The replication mode applied to the whole cluster.
Possible values are:
async When in asynchronous mode the cluster is allowed to lose some committed transactions. When the primary server fails or becomes unavailable for any other reason a sufficiently healthy standby will automatically be promoted to primary. Any transactions that have not been replicated to that standby remain in a “forked timeline” on the primary, and are effectively unrecoverable (the data is still there, but recovering it requires a manual recovery effort by data recovery specialists). sync When in synchronous mode a standby will not be promoted unless it is certain that the standby contains all
transactions that may have returned a successful commit status to client (clients can change the behavior
per transaction using PostgreSQL’s Synchronous mode does not guarantee multi node durability of commits under all circumstances. When no suitable standby is available, primary server will still accept writes, but does not guarantee their replication. When the primary fails in this mode no standby will be promoted. When the host that used to be the primary comes back it will get promoted automatically, unless system administrator performed a manual failover. This behavior makes synchronous mode usable with 2 node clusters. When synchronous mode is used and a standby crashes, commits will block until the primary is switched to standalone mode. Manually shutting down or restarting a standby will not cause a commit service interruption. Standby will signal the primary to release itself from synchronous standby duties before PostgreSQL shutdown is initiated. strict-sync When it is absolutely necessary to guarantee that each write is stored durably on at least two nodes, use the strict
synchronous mode. This mode prevents synchronous replication to be switched off on the primary when no synchronous
standby candidates are available. As a downside, the primary will not be available for writes (unless the Postgres
transaction explicitly turns off Note: Because of the way synchronous replication is implemented in PostgreSQL it is still possible to lose transactions even when using strict synchronous mode. If the PostgreSQL backend is cancelled while waiting to acknowledge replication (as a result of packet cancellation due to client timeout or backend failure) transaction changes become visible for other backends. Such changes are not yet replicated and may be lost in case of standby promotion. sync-all The same as strict-sync-all The same as Constraints: optional, updatable Default: sync-all |
| syncInstances integer |
Number of synchronous standby instances. Must be less than the total number of instances. It is set to 1 by default.
Only setteable if mode is
sync or strict-sync.
Constraints: optional, updatable Minimum: 1 |
Allows specifying how the replicas are initialized.
Property |
Description |
|---|---|
| backupNewerThan string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that specifies how old an SGBackup have to be in order to be seleceted
to initialize a replica.
When When Constraints: optional, updatable |
| backupRestorePerformance object |
Configuration that affects the backup network and disk usage performance during recovery.
Constraints: optional, updatable |
| mode string |
Allows specifying how the replicas are initialized.
Possible values are:
Constraints: optional, updatable Default: FromExistingBackup |
Configuration that affects the backup network and disk usage performance during recovery.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of file to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
This section allows to configure Postgres features
Property |
Description |
|---|---|
| version string |
Postgres version used on the cluster. It is either of:
Constraints: required, updatable |
| extensions []object |
StackGres support deploy of extensions at runtime by simply adding an entry to this array. A deployed extension still
requires the creation in a database using the A cluster restart is required for:
Exmaple: Constraints: optional, updatable |
| flavor string |
Postgres flavor used on the cluster. It is either of:
* `babelfish` will use the [Babelfish for Postgres](https://babelfish-for-postgresql.github.io/babelfish-for-postgresql/).
If not specified then the vanilla Postgres will be used for the cluster. This field can only be set on creation.
Constraints: optional, immutable |
| ssl object |
This section allows to use SSL when connecting to Postgres
Constraints: optional, updatable Default: map[enabled:true] |
Property |
Description |
|---|---|
| name string |
The name of the extension to deploy.
Constraints: required, updatable |
| publisher string |
The id of the publisher of the extension to deploy. If not specified
com.ongres will be used by default.Constraints: optional, updatable |
| repository string |
The repository base URL from where to obtain the extension to deploy.
This section is filled by the operator.
Constraints: optional, updatable |
| version string |
The version of the extension to deploy. If not specified version of
stable channel will be used by default.Constraints: optional, updatable |
This section allows to use SSL when connecting to Postgres
Example:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
postgres:
ssl:
enabled: true
certificateSecretKeySelector:
name: stackgres-secrets
key: cert
privateKeySecretKeySelector:
name: stackgres-secrets
key: key
Property |
Description |
|---|---|
| certificateSecretKeySelector object |
Secret key selector for the certificate or certificate chain used for SSL connections.
Constraints: optional, updatable |
| duration string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that specifies the duration of the auto-generated certificate.
If not specified the default duration will be of 13 months. The certificate will be re-generated 1 day or, if more, 1/12th of its duration before it expires.
Constraints: optional, updatable |
| enabled boolean |
Allows enabling SSL for connections to Postgres. By default is
true.
If Constraints: optional, updatable Default: true |
| privateKeySecretKeySelector object |
Secret key selector for the private key used for SSL connections.
Constraints: optional, updatable |
Secret key selector for the certificate or certificate chain used for SSL connections.
Property |
Description |
|---|---|
| key string |
The key of Secret that contains the certificate or certificate chain for SSL connections
Constraints: required, updatable |
| name string |
The name of Secret that contains the certificate or certificate chain for SSL connections
Constraints: required, updatable |
Secret key selector for the private key used for SSL connections.
Property |
Description |
|---|---|
| key string |
The key of Secret that contains the private key for SSL connections
Constraints: required, updatable |
| name string |
The name of Secret that contains the private key for SSL connections
Constraints: required, updatable |
The shards are a group of StackGres clusters where the partitioned data chunks are stored.
When referring to the cluster in the descriptions below it applies to any shard’s StackGres cluster.
Property |
Description |
|---|---|
| clusters integer |
Number of shard’s StackGres clusters
Constraints: required, updatable Minimum: 0 |
| instancesPerCluster integer |
Number of StackGres instances per shard’s StackGres cluster. Each instance contains one Postgres server.
Out of all of the Postgres servers, one is elected as the primary, the rest remain as read-only replicas.
Constraints: required, updatable Minimum: 0 |
| pods object |
Cluster pod’s configuration.
Constraints: required, updatable |
| autoscaling object |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources.
Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Constraints: optional, updatable |
| configurations object |
Shards custom configurations.
Constraints: optional, updatable |
| managedSql object |
This section allows to reference SQL scripts that will be applied to the cluster live.
Constraints: optional, updatable |
| metadata object |
Metadata information from shards cluster created resources.
Constraints: optional, updatable |
| overrides []object |
Any shard can be overridden by this section.
Constraints: optional, updatable |
| replication object |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups. The total number of instances is always specified by Constraints: optional, updatable |
| sgInstanceProfile string |
Name of the SGInstanceProfile.
A SGInstanceProfile defines CPU and memory limits. Must exist before creating a cluster. When no profile is set, a default (1 core, 2 GiB RAM) one is used. Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Cluster pod’s configuration.
Property |
Description |
|---|---|
| persistentVolume object |
Pod’s persistent volume configuration.
Constraints: required, updatable |
| customContainers []object |
A list of custom application containers that run within the shards cluster’s Pods.
The name used in this section will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customEnv map[string][]object |
A list of custom environment variables for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customEnvFrom map[string][]object |
Custom Pod environment variables from a source for the specified container.
Constraints: optional, updatable |
| customInitContainers []object |
A list of custom application init containers that run within the coordinator cluster’s Pods. The
custom init containers will run following the defined sequence at the end of
cluster’s Pods init containers.
The name used in this section will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnv map[string][]object |
A list of custom environment variables from source for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnvFrom map[string][]object |
A list of custom environment variables from source for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitVolumeMounts map[string][]object |
A list of custom volume mounts for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumeMounts map[string][]object |
A list of custom volume mounts for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumes []object |
A list of custom volumes that may be used along with any container defined in
customInitContainers or customContainers sections for the shards.
The name used in this section will be prefixed with the string Only the following volume types are allowed: configMap, downwardAPI, emptyDir, gitRepo, glusterfs, hostPath, nfs, projected and secret Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core
Constraints: optional, updatable, may require restart |
| disableConnectionPooling boolean |
If set to
true, avoids creating a connection pooling (using PgBouncer) sidecar.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| disableEnvoy boolean |
If set to
true, avoids creating the envoy sidecar. This sidecar is used as the endge proxy for the cluster’s Pods providing extra metrics to the monitoring layer.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| disableMetricsExporter boolean |
Deprecated use instead .spec.configurations.observability.disableMetrics.
Constraints: optional, updatable Default: false |
| disablePostgresUtil boolean |
If set to
true, avoids creating the postgres-util sidecar. This sidecar contains usual Postgres administration utilities that are not present in the main (patroni) container, like psql. Only disable if you know what you are doing.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| livenessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| managementPolicy string |
managementPolicy controls how pods are created during initial scale up, when replacing pods
on nodes, or when scaling down. The default policy is
OrderedReady, where pods are created
in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is
ready before continuing. When scaling down, the pods are removed in the opposite order.
The alternative policy is Parallel which will create pods in parallel to match the desired
scale without waiting, and on scale down will delete all pods at once.
Constraints: optional, updatable |
| readinessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| resources object |
Pod custom resources configuration.
Constraints: optional, updatable |
| scheduling object |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.
Constraints: optional, updatable Format: int64 |
| updateStrategy object |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Constraints: optional, updatable Default: map[type:OnlyDbOps] |
Pod’s persistent volume configuration.
Property |
Description |
|---|---|
| size string |
Size of the PersistentVolume set for each instance of the cluster. This size is specified either in Mebibytes, Gibibytes or Tebibytes (multiples of 2^20, 2^30 or 2^40, respectively).
Constraints: required, updatable |
| fsGroupChangePolicy string |
fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are “OnRootMismatch” and “Always”. If not specified, “Always” is used. Note that this field cannot be set when spec.os.name is windows.
Constraints: optional, updatable |
| storageClass string |
Name of an existing StorageClass in the Kubernetes cluster, used to create the PersistentVolumes for the instances of the cluster.
Constraints: optional, updatable |
EnvFromSource represents the source of a set of ConfigMaps or Secrets
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envfromsource-v1-core
Property |
Description |
|---|---|
| configMapRef object |
ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.
The contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables. Constraints: optional, updatable |
| prefix string |
Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except ‘=’.
Constraints: optional, updatable |
| secretRef object |
SecretEnvSource selects a Secret to populate the environment variables with.
The contents of the target Secret’s Data field will represent the key-value pairs as environment variables. Constraints: optional, updatable |
ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.
The contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables.
Property |
Description |
|---|---|
| name string |
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Constraints: optional, updatable |
| optional boolean |
Specify whether the ConfigMap must be defined
Constraints: optional, updatable |
SecretEnvSource selects a Secret to populate the environment variables with.
The contents of the target Secret’s Data field will represent the key-value pairs as environment variables.
Property |
Description |
|---|---|
| name string |
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Constraints: optional, updatable |
| optional boolean |
Specify whether the Secret must be defined
Constraints: optional, updatable |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Pod custom resources configuration.
Property |
Description |
|---|---|
| containers map[string]object |
Resources configuration to be merged with the specified container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
| disableResourcesRequestsSplitFromTotal boolean |
When set to
true the resources requests values in fields SGInstanceProfile.spec.requests.cpu and SGInstanceProfile.spec.requests.memory will represent the resources
requests of the patroni container and the total resources requests calculated by adding the resources requests of all the containers (including the patroni container).
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| enableClusterLimitsRequirements boolean |
When enabled resource limits for containers other than the patroni container wil be set just like for patroni contianer as specified in the SGInstanceProfile.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| failWhenTotalIsHigher boolean |
When set to
true the reconciliation of the cluster will fail if disableResourcesRequestsSplitFromTotal is not set or set to false and the sum of the CPU or memory
of all the containers except patroni is equals or higher than the total specified in SGInstanceProfile.spec.requests.cpu or SGInstanceProfile.spec.requests.memory.
When Constraints: optional, updatable |
| initContainers map[string]object |
Resources configuration to be merged with the specified init container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Property |
Description |
|---|---|
| backup object |
Backup Pod custom scheduling and affinity configuration.
Constraints: optional, updatable, may require restart |
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector map[string]string |
NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations []object |
If specified, the pod’s tolerations.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core Constraints: optional, updatable, may require restart |
| topologySpreadConstraints []object |
TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.
Constraints: optional, updatable, may require restart |
Backup Pod custom scheduling and affinity configuration.
Property |
Description |
|---|---|
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator
Property |
Description |
|---|---|
| effect string |
Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
Constraints: optional, updatable, may require restart |
| key string |
Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
Constraints: optional, updatable, may require restart |
| operator string |
Operator represents a key’s relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
Constraints: optional, updatable, may require restart |
| tolerationSeconds integer |
TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
Constraints: optional, updatable, may require restart Format: int64 |
| value string |
Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
Constraints: optional, updatable, may require restart |
TopologySpreadConstraint specifies how to spread matching pods among the given topology.
Property |
Description |
|---|---|
| maxSkew integer |
MaxSkew describes the degree to which pods may be unevenly distributed. When
whenUnsatisfiable=DoNotSchedule, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway, it is used to give higher precedence to topologies that satisfy it. It’s a required field. Default value is 1 and 0 is not allowed.Constraints: required, updatable, may require restart Format: int32 |
| topologyKey string |
TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a “bucket”, and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is “kubernetes.io/hostname”, each Node is a domain of that topology. And, if TopologyKey is “topology.kubernetes.io/zone”, each zone is a domain of that topology. It’s a required field.
Constraints: required, updatable, may require restart |
| whenUnsatisfiable string |
WhenUnsatisfiable indicates how to deal with a pod if it doesn’t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
but giving higher precedence to topologies that would help reduce the
skew.
A constraint is considered “Unsatisfiable” for an incoming pod if and only if every possible node assignment for that pod would violate “MaxSkew” on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won’t make it more imbalanced. It’s a required field.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn’t set. Keys that don’t exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). Constraints: optional, updatable, may require restart |
| minDomains integer |
MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats “global minimum” as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won’t schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so “global minimum” is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. Constraints: optional, updatable, may require restart Format: int32 |
| nodeAffinityPolicy string |
NodeAffinityPolicy indicates how we will treat Pod’s nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
If this value is nil, the behavior is equivalent to the Honor policy. Constraints: optional, updatable, may require restart |
| nodeTaintsPolicy string |
NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.
If this value is nil, the behavior is equivalent to the Ignore policy. Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Property |
Description |
|---|---|
| method string |
Indicates the method of the update strategy. Default is
InPlace.
Constraints: optional, updatable Default: InPlace |
| schedule []object |
Indicates a list of windows of time where an update can be performed.
Constraints: optional, updatable |
| type string |
Indicates the type of the update strategy. Default is
OnlyDbOps.
Alternatively to this configuration you may specify the following annotations:
Unless The update of the Pods will be performed only if Pods are pending any change. Changes in the configuration may not require restarting the Pod and, in such cases, only
the Postgres instance will be restarted.
Constraints: optional, updatable Default: OnlyDbOps |
Indicates a window of time where an update can be performed.
Property |
Description |
|---|---|
| cron string |
A UNIX cron expression indicating the start of the window of time where the update can be performed.
Constraints: optional, updatable |
| duration string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that, together with the cron expression, indicates the end of the window of time where the update can be performed.
Constraints: optional, updatable |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources. Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Property |
Description |
|---|---|
| horizontal object |
Section to configure horizontal Pod autoscaling aspects.
Constraints: optional, updatable |
| maxAllowed object |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| minAllowed object |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| mode enum |
Allows enabling or disabling any of horizontal and vertical Pod autoscaling.
Possible values are:
Constraints: optional, updatable Enum: vertical, none Default: vertical |
| vertical object |
Section to configure vertical Pod autoscaling aspects.
Constraints: optional, updatable |
Section to configure horizontal Pod autoscaling aspects.
Property |
Description |
|---|---|
| cooldownPeriod integer |
The period in seconds before the downscale of replica instances can be triggered.
Constraints: optional, updatable Default: 300 |
| pollingInterval integer |
The interval in seconds to check if the scaleup or scaledown have to be triggered.
Constraints: optional, updatable Default: 30 |
| replicasConnectionsUsageMetricType string |
The metric type for connections used metric. See https://keda.sh/docs/latest/concepts/scaling-deployments/#triggers
Constraints: optional, updatable Default: AverageValue |
| replicasConnectionsUsageTarget string |
The target value for replicas connections used in order to trigger the upscale of replica instances.
Constraints: optional, updatable Default: 0.8 |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the higher bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the higher bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the higher bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the lower bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the lower bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the lower bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Section to configure vertical Pod autoscaling aspects.
Property |
Description |
|---|---|
| recommender string |
Recommender responsible for generating recommendation for vertical Pod autoscaling. If not specified the default one will be used.
Constraints: optional, updatable |
Shards custom configurations.
Property |
Description |
|---|---|
| patroni object |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is Constraints: optional, updatable |
| pooling object |
Constraints: optional, updatable |
| postgres object |
Section for postgres configuration.
Constraints: optional, updatable |
| postgresExporter object |
Section to configure the postgres_exporter component.
Constraints: optional, updatable |
| sgPoolingConfig string |
Name of the SGPoolingConfig used for this cluster. Each pod contains a sidecar with a connection pooler (currently: PgBouncer). The connection pooler is implemented as a sidecar.
If not set, a default configuration will be used. Disabling connection pooling altogether is possible if the disableConnectionPooling property of the pods object is set to true. Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| sgPostgresConfig string |
Name of the SGPostgresConfig used for the cluster. It must exist. When not set, a default Postgres config, for the major version selected, is used.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is shardingsphere then this section is ignored.
Property |
Description |
|---|---|
| dynamicConfig object |
Allows specifying Patroni dynamic configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/dynamic_configuration.html
The following configuration fields will be ignored:
If sharding type is Constraints: optional, updatable |
| initialConfig object |
Allows specifying Patroni configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/yaml_configuration.html
The following configuration fields will be ignored:
If sharding type is This field can only be set on creation.
Constraints: optional, immutable |
Property |
Description |
|---|---|
| pgBouncer object |
Constraints: optional, updatable |
Property |
Description |
|---|---|
| pgbouncer.ini object |
The
pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
The pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Property |
Description |
|---|---|
| databases map[string]map[string]string |
The
pgbouncer.ini (Section [databases]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
| pgbouncer map[string]string |
The
pgbouncer.ini (Section [pgbouncer]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters
Constraints: optional, updatable, may require restart |
| users map[string]map[string]string |
The
pgbouncer.ini (Section [users]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
Section for postgres configuration.
Property |
Description |
|---|---|
| postgresql.conf map[string]string |
The
postgresql.conf parameters that overwrite those specified in the referenced SGPostgresConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Section to configure the postgres_exporter component.
Property |
Description |
|---|---|
| queries object |
Section to configure the postgres_exporter queries.yaml configuration.
The queries defined here will overwrite those created by the operator. WARNING: Changing this may beak some of the functionality that depend on the query overwritten.
Constraints: optional, updatable |
This section allows to reference SQL scripts that will be applied to the cluster live.
Property |
Description |
|---|---|
| continueOnSGScriptError boolean |
If true, when any entry of any
SGScript fail will not prevent subsequent SGScript from being executed. By default is false.Constraints: optional, updatable |
| scripts []object |
A list of script references that will be executed in sequence.
Constraints: optional, updatable |
A script reference. Each version of each entry of the script referenced will be executed exactly once following the sequence defined in the referenced script and skipping any script entry that have already been executed.
Property |
Description |
|---|---|
| id integer |
The id is immutable and must be unique across all the
SGScript entries. It is replaced by the operator and is used to identify the SGScript entry.Constraints: optional, updatable |
| sgScript string |
A reference to an
SGScriptConstraints: optional, updatable |
Metadata information from shards cluster created resources.
Property |
Description |
|---|---|
| annotations object |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
| labels object |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
Any shard can be overridden by this section.
Property |
Description |
|---|---|
| index integer |
Identifier of the shard StackGres cluster to override (starting from 0)
Constraints: required, updatable Minimum: 0 |
| autoscaling object |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources.
Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Constraints: optional, updatable |
| configurations object |
Shards custom configurations.
Constraints: optional, updatable |
| instancesPerCluster integer |
Number of StackGres instances per shard’s StackGres cluster. Each instance contains one Postgres server.
Out of all of the Postgres servers, one is elected as the primary, the rest remain as read-only replicas.
Constraints: optional, updatable Minimum: 0 |
| managedSql object |
This section allows to reference SQL scripts that will be applied to the cluster live.
Constraints: optional, updatable |
| metadata object |
Metadata information from shards cluster created resources.
Constraints: optional, updatable |
| pods object |
Cluster pod’s configuration.
Constraints: optional, updatable |
| replication object |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups. The total number of instances is always specified by Constraints: optional, updatable |
| sgInstanceProfile string |
Name of the SGInstanceProfile. A SGInstanceProfile defines CPU and memory limits. Must exist before creating a cluster. When no profile is set, a default (currently: 1 core, 2 GiB RAM) one is used.
Constraints: optional, updatable |
This section allows configuring vertical Pod autoscaling for the SGCluster’s Pods.
Vertical Pod Autoscaling will use cpu and memory usage as the metric to control the upscale or downscale of the Pod requests and limits resources. Vertical Pod Autoscaling requires the Vertical Pod Autoscaler operator to be installed in the Kubernetes cluster.
Property |
Description |
|---|---|
| horizontal object |
Section to configure horizontal Pod autoscaling aspects.
Constraints: optional, updatable |
| maxAllowed object |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| minAllowed object |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Constraints: optional, updatable |
| mode enum |
Allows enabling or disabling any of horizontal and vertical Pod autoscaling.
Possible values are:
Constraints: optional, updatable Enum: vertical, none Default: vertical |
| vertical object |
Section to configure vertical Pod autoscaling aspects.
Constraints: optional, updatable |
Section to configure horizontal Pod autoscaling aspects.
Property |
Description |
|---|---|
| cooldownPeriod integer |
The period in seconds before the downscale of replica instances can be triggered.
Constraints: optional, updatable Default: 300 |
| pollingInterval integer |
The interval in seconds to check if the scaleup or scaledown have to be triggered.
Constraints: optional, updatable Default: 30 |
| replicasConnectionsUsageMetricType string |
The metric type for connections used metric. See https://keda.sh/docs/latest/concepts/scaling-deployments/#triggers
Constraints: optional, updatable Default: AverageValue |
| replicasConnectionsUsageTarget string |
The target value for replicas connections used in order to trigger the upscale of replica instances.
Constraints: optional, updatable Default: 0.8 |
Defines the higher bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the higher bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the higher bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the higher bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the higher bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The maximum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The maximum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni, pgbouncer and envoy containers
Property |
Description |
|---|---|
| envoy object |
Defines the lower bound for Pod resources of envoy container
Constraints: optional, updatable |
| patroni object |
Defines the lower bound for Pod resources of patroni container
Constraints: optional, updatable |
| pgbouncer object |
Defines the lower bound for Pod resources of pgbouncer container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of envoy container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the envoy container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the envoy container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of patroni container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the patroni container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the patroni container
Constraints: optional, updatable |
Defines the lower bound for Pod resources of pgbouncer container
Property |
Description |
|---|---|
| cpu string |
The minimum allowed CPU for the pgbouncer container
Constraints: optional, updatable |
| memory string |
The minimum allowed memory for the pgbouncer container
Constraints: optional, updatable |
Section to configure vertical Pod autoscaling aspects.
Property |
Description |
|---|---|
| recommender string |
Recommender responsible for generating recommendation for vertical Pod autoscaling. If not specified the default one will be used.
Constraints: optional, updatable |
Shards custom configurations.
Property |
Description |
|---|---|
| patroni object |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is Constraints: optional, updatable |
| pooling object |
Constraints: optional, updatable |
| postgres object |
Section for postgres configuration.
Constraints: optional, updatable |
| postgresExporter object |
Section to configure the postgres_exporter component.
Constraints: optional, updatable |
| sgPoolingConfig string |
Name of the SGPoolingConfig used for this cluster. Each pod contains a sidecar with a connection pooler (currently: PgBouncer). The connection pooler is implemented as a sidecar.
If not set, a default configuration will be used. Disabling connection pooling altogether is possible if the disableConnectionPooling property of the pods object is set to true.
Constraints: optional, updatable |
| sgPostgresConfig string |
Name of the SGPostgresConfig used for the cluster. It must exist. When not set, a default Postgres config, for the major version selected, is used.
Constraints: optional, updatable |
Allows specifying Patroni configuration that will extend the generated one
If sharding type is shardingsphere then this section is ignored.
Property |
Description |
|---|---|
| dynamicConfig object |
Allows specifying Patroni dynamic configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/dynamic_configuration.html
The following configuration fields will be ignored:
If sharding type is Constraints: optional, updatable |
| initialConfig object |
Allows specifying Patroni configuration that will overwrite the generated one. See https://patroni.readthedocs.io/en/latest/yaml_configuration.html
The following configuration fields will be ignored:
If sharding type is This field can only be set on creation.
Constraints: optional, immutable |
Property |
Description |
|---|---|
| pgBouncer object |
Constraints: optional, updatable |
Property |
Description |
|---|---|
| pgbouncer.ini object |
The
pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
The pgbouncer.ini parameters that overwrite those specified in the referenced SGPoolingConfig.
Changing this field may require a restart.
Property |
Description |
|---|---|
| databases map[string]map[string]string |
The
pgbouncer.ini (Section [databases]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
| pgbouncer map[string]string |
The
pgbouncer.ini (Section [pgbouncer]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters
Constraints: optional, updatable, may require restart |
| users map[string]map[string]string |
The
pgbouncer.ini (Section [users]) parameters the configuration contains, represented as an object where the keys are valid names for the pgbouncer.ini configuration file parameters.
Check pgbouncer configuration for more information about supported parameters.
Constraints: optional, updatable, may require restart |
Section for postgres configuration.
Property |
Description |
|---|---|
| postgresql.conf map[string]string |
The
postgresql.conf parameters that overwrite those specified in the referenced SGPostgresConfig.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Section to configure the postgres_exporter component.
Property |
Description |
|---|---|
| queries object |
Section to configure the postgres_exporter queries.yaml configuration.
The queries defined here will overwrite those created by the operator. WARNING: Changing this may beak some of the functionality that depend on the query overwritten.
Constraints: optional, updatable |
This section allows to reference SQL scripts that will be applied to the cluster live.
Property |
Description |
|---|---|
| continueOnSGScriptError boolean |
If true, when any entry of any
SGScript fail will not prevent subsequent SGScript from being executed. By default is false.Constraints: optional, updatable |
| scripts []object |
A list of script references that will be executed in sequence.
Constraints: optional, updatable |
A script reference. Each version of each entry of the script referenced will be executed exactly once following the sequence defined in the referenced script and skipping any script entry that have already been executed.
Property |
Description |
|---|---|
| id integer |
The id is immutable and must be unique across all the
SGScript entries. It is replaced by the operator and is used to identify the SGScript entry.Constraints: optional, updatable |
| sgScript string |
A reference to an
SGScriptConstraints: optional, updatable |
Metadata information from shards cluster created resources.
Property |
Description |
|---|---|
| annotations object |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
| labels object |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
Cluster pod’s configuration.
Property |
Description |
|---|---|
| customContainers []object |
A list of custom application containers that run within the shards cluster’s Pods.
The name used in this section will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customEnv map[string][]object |
A list of custom environment variables for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customEnvFrom map[string][]object |
A list of custom environment variables from source for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitContainers []object |
A list of custom application init containers that run within the coordinator cluster’s Pods. The
custom init containers will run following the defined sequence at the end of
cluster’s Pods init containers.
The name used in this section will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnv map[string][]object |
A list of custom environment variables for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitEnvFrom map[string][]object |
A list of custom environment variables from source for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customInitVolumeMounts map[string][]object |
A list of custom volume mounts for the specified init container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumeMounts map[string][]object |
A list of custom volume mounts for the specified container.
Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#container-v1-core
Constraints: optional, updatable, may require restart |
| customVolumes []object |
A list of custom volumes that may be used along with any container defined in
customInitContainers or customContainers sections for the shards.
The name used in this section will be prefixed with the string Only the following volume types are allowed: configMap, downwardAPI, emptyDir, gitRepo, glusterfs, hostPath, nfs, projected and secret Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core
Constraints: optional, updatable, may require restart |
| disableConnectionPooling boolean |
If set to
true, avoids creating a connection pooling (using PgBouncer) sidecar.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| disableEnvoy boolean |
If set to
true, avoids creating the envoy sidecar. This sidecar is used as the endge proxy for the cluster’s Pods providing extra metrics to the monitoring layer.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| disableMetricsExporter boolean |
Deprecated use instead .spec.configurations.observability.disableMetrics.
Constraints: optional, updatable Default: false |
| disablePostgresUtil boolean |
If set to
true, avoids creating the postgres-util sidecar. This sidecar contains usual Postgres administration utilities that are not present in the main (patroni) container, like psql. Only disable if you know what you are doing.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| livenessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| managementPolicy string |
managementPolicy controls how pods are created during initial scale up, when replacing pods
on nodes, or when scaling down. The default policy is
OrderedReady, where pods are created
in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is
ready before continuing. When scaling down, the pods are removed in the opposite order.
The alternative policy is Parallel which will create pods in parallel to match the desired
scale without waiting, and on scale down will delete all pods at once.
Constraints: optional, updatable |
| persistentVolume object |
Pod’s persistent volume configuration.
Constraints: optional, updatable |
| readinessProbe object |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Constraints: optional, updatable |
| resources object |
Pod custom resources configuration.
Constraints: optional, updatable |
| scheduling object |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.
Constraints: optional, updatable Format: int64 |
| updateStrategy object |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Constraints: optional, updatable Default: map[type:OnlyDbOps] |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Pod’s persistent volume configuration.
Property |
Description |
|---|---|
| size string |
Size of the PersistentVolume set for each instance of the cluster. This size is specified either in Mebibytes, Gibibytes or Tebibytes (multiples of 2^20, 2^30 or 2^40, respectively).
Constraints: required, updatable |
| fsGroupChangePolicy string |
fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are “OnRootMismatch” and “Always”. If not specified, “Always” is used. Note that this field cannot be set when spec.os.name is windows.
Constraints: optional, updatable |
| storageClass string |
Name of an existing StorageClass in the Kubernetes cluster, used to create the PersistentVolumes for the instances of the cluster.
Constraints: optional, updatable |
Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
Property |
Description |
|---|---|
| failureThreshold integer |
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| initialDelaySeconds integer |
Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
| periodSeconds integer |
How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| successThreshold integer |
Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
Constraints: optional, updatable Format: int32 |
| terminationGracePeriodSeconds integer |
Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod’s terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
Constraints: optional, updatable Format: int64 |
| timeoutSeconds integer |
Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Constraints: optional, updatable Format: int32 |
Pod custom resources configuration.
Property |
Description |
|---|---|
| containers map[string]object |
Resources configuration to be merged with the specified container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
| disableResourcesRequestsSplitFromTotal boolean |
When set to
true the resources requests values in fields SGInstanceProfile.spec.requests.cpu and SGInstanceProfile.spec.requests.memory will represent the resources
requests of the patroni container and the total resources requests calculated by adding the resources requests of all the containers (including the patroni container).
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| enableClusterLimitsRequirements boolean |
When enabled resource limits for containers other than the patroni container wil be set just like for patroni contianer as specified in the SGInstanceProfile.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| failWhenTotalIsHigher boolean |
When set to
true the reconciliation of the cluster will fail if disableResourcesRequestsSplitFromTotal is not set or set to false and the sum of the CPU or memory
of all the containers except patroni is equals or higher than the total specified in SGInstanceProfile.spec.requests.cpu or SGInstanceProfile.spec.requests.memory.
When Constraints: optional, updatable |
| initContainers map[string]object |
Resources configuration to be merged with the specified init container on top of SGInstanceProfile referenced by
sgInstanceProfile field if specified.Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
ResourceRequirements describes the compute resource requirements.
Property |
Description |
|---|---|
| claims []object |
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. Constraints: optional, updatable |
| limits map[string]string |
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
| requests map[string]string |
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Constraints: optional, updatable |
ResourceClaim references one entry in PodSpec.ResourceClaims.
Property |
Description |
|---|---|
| name string |
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
Constraints: required, updatable |
| request string |
Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
Constraints: optional, updatable |
Pod custom scheduling, affinity and topology spread constratins configuration.
Changing this field may require a restart.
Property |
Description |
|---|---|
| backup object |
Backup Pod custom scheduling and affinity configuration.
Constraints: optional, updatable, may require restart |
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector map[string]string |
NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations []object |
If specified, the pod’s tolerations.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core Constraints: optional, updatable, may require restart |
| topologySpreadConstraints []object |
TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.
Constraints: optional, updatable, may require restart |
Backup Pod custom scheduling and affinity configuration.
Property |
Description |
|---|---|
| nodeAffinity object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| nodeSelector object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAffinity object |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core Constraints: optional, updatable, may require restart |
| podAntiAffinity object |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core Constraints: optional, updatable, may require restart |
| priorityClassName string |
If specified, indicates the pod’s priority. “system-node-critical” and “system-cluster-critical” are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
Constraints: optional, updatable, may require restart |
| tolerations object |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Node affinity is a group of node affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution object |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Constraints: optional, updatable, may require restart |
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Property |
Description |
|---|---|
| preference object |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Constraints: required, updatable, may require restart |
| weight integer |
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
Property |
Description |
|---|---|
| nodeSelectorTerms []object |
Required. A list of node selector terms. The terms are ORed.
Constraints: required, updatable, may require restart |
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Property |
Description |
|---|---|
| matchExpressions []object |
A list of node selector requirements by node’s labels.
Constraints: optional, updatable, may require restart |
| matchFields []object |
A list of node selector requirements by node’s fields.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
The label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Constraints: required, updatable, may require restart |
| values []string |
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod affinity is a group of inter pod affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding “weight” to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Pod anti affinity is a group of inter pod anti affinity scheduling rules.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core
Property |
Description |
|---|---|
| preferredDuringSchedulingIgnoredDuringExecution []object |
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting “weight” from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Constraints: optional, updatable, may require restart |
| requiredDuringSchedulingIgnoredDuringExecution []object |
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Constraints: optional, updatable, may require restart |
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Property |
Description |
|---|---|
| podAffinityTerm object |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Constraints: required, updatable, may require restart |
| weight integer |
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Constraints: required, updatable, may require restart Format: int32 |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key
Property |
Description |
|---|---|
| topologyKey string |
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| mismatchLabelKeys []string |
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with
labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod’s pod (anti) affinity. Keys that don’t exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn’t set.Constraints: optional, updatable, may require restart |
| namespaceSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| namespaces []string |
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means “this pod’s namespace”.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator
Property |
Description |
|---|---|
| effect string |
Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
Constraints: optional, updatable, may require restart |
| key string |
Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
Constraints: optional, updatable, may require restart |
| operator string |
Operator represents a key’s relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
Constraints: optional, updatable, may require restart |
| tolerationSeconds integer |
TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
Constraints: optional, updatable, may require restart Format: int64 |
| value string |
Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
Constraints: optional, updatable, may require restart |
TopologySpreadConstraint specifies how to spread matching pods among the given topology.
Property |
Description |
|---|---|
| maxSkew integer |
MaxSkew describes the degree to which pods may be unevenly distributed. When
whenUnsatisfiable=DoNotSchedule, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway, it is used to give higher precedence to topologies that satisfy it. It’s a required field. Default value is 1 and 0 is not allowed.Constraints: required, updatable, may require restart Format: int32 |
| topologyKey string |
TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a “bucket”, and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is “kubernetes.io/hostname”, each Node is a domain of that topology. And, if TopologyKey is “topology.kubernetes.io/zone”, each zone is a domain of that topology. It’s a required field.
Constraints: required, updatable, may require restart |
| whenUnsatisfiable string |
WhenUnsatisfiable indicates how to deal with a pod if it doesn’t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
but giving higher precedence to topologies that would help reduce the
skew.
A constraint is considered “Unsatisfiable” for an incoming pod if and only if every possible node assignment for that pod would violate “MaxSkew” on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won’t make it more imbalanced. It’s a required field.
Constraints: required, updatable, may require restart |
| labelSelector object |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Constraints: optional, updatable, may require restart |
| matchLabelKeys []string |
MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn’t set. Keys that don’t exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). Constraints: optional, updatable, may require restart |
| minDomains integer |
MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats “global minimum” as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won’t schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so “global minimum” is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. Constraints: optional, updatable, may require restart Format: int32 |
| nodeAffinityPolicy string |
NodeAffinityPolicy indicates how we will treat Pod’s nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
If this value is nil, the behavior is equivalent to the Honor policy. Constraints: optional, updatable, may require restart |
| nodeTaintsPolicy string |
NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.
If this value is nil, the behavior is equivalent to the Ignore policy. Constraints: optional, updatable, may require restart |
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Property |
Description |
|---|---|
| matchExpressions []object |
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
| matchLabels map[string]string |
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
Constraints: optional, updatable, may require restart |
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Property |
Description |
|---|---|
| key string |
key is the label key that the selector applies to.
Constraints: required, updatable, may require restart |
| operator string |
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
Constraints: required, updatable, may require restart |
| values []string |
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Constraints: optional, updatable, may require restart |
This section indicates the strategy that the SGCluster controller will use to perform updates.
It includes any additional parameters necessary to perform the update for the indicated strategy.
Property |
Description |
|---|---|
| method string |
Indicates the method of the update strategy. Default is
InPlace.
Constraints: optional, updatable Default: InPlace |
| schedule []object |
Indicates a list of windows of time where an update can be performed.
Constraints: optional, updatable |
| type string |
Indicates the type of the update strategy. Default is
OnlyDbOps.
Alternatively to this configuration you may specify the following annotations:
Unless The update of the Pods will be performed only if Pods are pending any change. Changes in the configuration may not require restarting the Pod and, in such cases, only
the Postgres instance will be restarted.
Constraints: optional, updatable Default: OnlyDbOps |
Indicates a window of time where an update can be performed.
Property |
Description |
|---|---|
| cron string |
A UNIX cron expression indicating the start of the window of time where the update can be performed.
Constraints: optional, updatable |
| duration string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that, together with the cron expression, indicates the end of the window of time where the update can be performed.
Constraints: optional, updatable |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups.
The total number of instances is always specified by .spec.instances.
Property |
Description |
|---|---|
| initialization object |
Allows specifying how the replicas are initialized.
Constraints: optional, updatable |
| mode string |
The replication mode applied to the whole cluster.
Possible values are:
async When in asynchronous mode the cluster is allowed to lose some committed transactions. When the primary server fails or becomes unavailable for any other reason a sufficiently healthy standby will automatically be promoted to primary. Any transactions that have not been replicated to that standby remain in a “forked timeline” on the primary, and are effectively unrecoverable (the data is still there, but recovering it requires a manual recovery effort by data recovery specialists). sync When in synchronous mode a standby will not be promoted unless it is certain that the standby contains all
transactions that may have returned a successful commit status to client (clients can change the behavior
per transaction using PostgreSQL’s Synchronous mode does not guarantee multi node durability of commits under all circumstances. When no suitable standby is available, primary server will still accept writes, but does not guarantee their replication. When the primary fails in this mode no standby will be promoted. When the host that used to be the primary comes back it will get promoted automatically, unless system administrator performed a manual failover. This behavior makes synchronous mode usable with 2 node clusters. When synchronous mode is used and a standby crashes, commits will block until the primary is switched to standalone mode. Manually shutting down or restarting a standby will not cause a commit service interruption. Standby will signal the primary to release itself from synchronous standby duties before PostgreSQL shutdown is initiated. strict-sync When it is absolutely necessary to guarantee that each write is stored durably on at least two nodes, use the strict
synchronous mode. This mode prevents synchronous replication to be switched off on the primary when no synchronous
standby candidates are available. As a downside, the primary will not be available for writes (unless the Postgres
transaction explicitly turns off Note: Because of the way synchronous replication is implemented in PostgreSQL it is still possible to lose transactions even when using strict synchronous mode. If the PostgreSQL backend is cancelled while waiting to acknowledge replication (as a result of packet cancellation due to client timeout or backend failure) transaction changes become visible for other backends. Such changes are not yet replicated and may be lost in case of standby promotion. sync-all The same as strict-sync-all The same as Constraints: optional, updatable Default: async |
| syncInstances integer |
Number of synchronous standby instances. Must be less than the total number of instances. It is set to 1 by default.
Only setteable if mode is
sync or strict-sync.
Constraints: optional, updatable Minimum: 1 |
Allows specifying how the replicas are initialized.
Property |
Description |
|---|---|
| backupNewerThan string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that specifies how old an SGBackup have to be in order to be seleceted
to initialize a replica.
When When Constraints: optional, updatable |
| backupRestorePerformance object |
Configuration that affects the backup network and disk usage performance during recovery.
Constraints: optional, updatable |
| mode string |
Allows specifying how the replicas are initialized.
Possible values are:
Constraints: optional, updatable Default: FromExistingBackup |
Configuration that affects the backup network and disk usage performance during recovery.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of file to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups.
The total number of instances is always specified by .spec.instances.
Property |
Description |
|---|---|
| initialization object |
Allows specifying how the replicas are initialized.
Constraints: optional, updatable |
| mode string |
The replication mode applied to the whole cluster.
Possible values are:
async When in asynchronous mode the cluster is allowed to lose some committed transactions. When the primary server fails or becomes unavailable for any other reason a sufficiently healthy standby will automatically be promoted to primary. Any transactions that have not been replicated to that standby remain in a “forked timeline” on the primary, and are effectively unrecoverable (the data is still there, but recovering it requires a manual recovery effort by data recovery specialists). sync When in synchronous mode a standby will not be promoted unless it is certain that the standby contains all
transactions that may have returned a successful commit status to client (clients can change the behavior
per transaction using PostgreSQL’s Synchronous mode does not guarantee multi node durability of commits under all circumstances. When no suitable standby is available, primary server will still accept writes, but does not guarantee their replication. When the primary fails in this mode no standby will be promoted. When the host that used to be the primary comes back it will get promoted automatically, unless system administrator performed a manual failover. This behavior makes synchronous mode usable with 2 node clusters. When synchronous mode is used and a standby crashes, commits will block until the primary is switched to standalone mode. Manually shutting down or restarting a standby will not cause a commit service interruption. Standby will signal the primary to release itself from synchronous standby duties before PostgreSQL shutdown is initiated. strict-sync When it is absolutely necessary to guarantee that each write is stored durably on at least two nodes, use the strict
synchronous mode. This mode prevents synchronous replication to be switched off on the primary when no synchronous
standby candidates are available. As a downside, the primary will not be available for writes (unless the Postgres
transaction explicitly turns off Note: Because of the way synchronous replication is implemented in PostgreSQL it is still possible to lose transactions even when using strict synchronous mode. If the PostgreSQL backend is cancelled while waiting to acknowledge replication (as a result of packet cancellation due to client timeout or backend failure) transaction changes become visible for other backends. Such changes are not yet replicated and may be lost in case of standby promotion. sync-all The same as strict-sync-all The same as Constraints: optional, updatable Default: async |
| syncInstances integer |
Number of synchronous standby instances. Must be less than the total number of instances. It is set to 1 by default.
Only setteable if mode is
sync or strict-sync.
Constraints: optional, updatable Minimum: 1 |
Allows specifying how the replicas are initialized.
Property |
Description |
|---|---|
| backupNewerThan string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that specifies how old an SGBackup have to be in order to be seleceted
to initialize a replica.
When When Constraints: optional, updatable |
| backupRestorePerformance object |
Configuration that affects the backup network and disk usage performance during recovery.
Constraints: optional, updatable |
| mode string |
Allows specifying how the replicas are initialized.
Possible values are:
Constraints: optional, updatable Default: FromExistingBackup |
Configuration that affects the backup network and disk usage performance during recovery.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of file to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
Sharded cluster custom configurations.
Example:
yaml
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
configurations:
backups:
- sgObjectStorage: 'backupconf'
Property |
Description |
|---|---|
| backups []object |
List of sharded backups configurations for this SGShardedCluster
Constraints: optional, updatable |
| binding object |
This section allows specifying the properties of Service Binding spec for provisioned service.
If not specified, then some default will be used.
For more information see https://servicebinding.io/spec/core/1.0.0/
Constraints: optional, updatable |
| credentials object |
Allows specifying custom credentials for Postgres users and Patroni REST API
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| observability object |
Allows specifying Observability configuration (related to logs, metrics and traces)
Constraints: optional, updatable |
| postgresExporter object |
Section to configure the postgres_exporter component.
Constraints: optional, updatable |
Sharded backup configuration for this SGShardedCluster
Property |
Description |
|---|---|
| sgObjectStorage string |
Name of the SGObjectStorage to use for the cluster. It defines the location in which the backups will be stored.
Constraints: required, updatable |
| compression enum |
Specifies the backup compression algorithm. Possible options are: lz4, lzma, zstd, brotli. The default method is
lz4. LZ4 is the fastest method, but compression ratio is the worst. LZMA is way slower, but it compresses backups about 6 times better than LZ4. Brotli is a good trade-off between speed and compression ratio, being about 3 times better than LZ4.
Constraints: optional, updatable Enum: lz4, lzma, zstd, brotli |
| cronSchedule string |
Continuous Archiving backups are composed of periodic base backups and all the WAL segments produced in between those base backups for the coordinator and each shard. This parameter specifies at what time and with what frequency to start performing a new base backup.
Use cron syntax (
Also ranges of values ( If not set, full backups are never performed automatically.
Constraints: optional, updatable |
| fastVolumeSnapshot boolean |
If specified SGBackup will create a backup forcing a fast start (by setting parameter
fast to true when calling pg_backup_start) that will reduce the time the backups may take at the expense of more IO usage.
See also https://www.postgresql.org/docs/current/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
Constraints: optional, updatable |
| paths []string |
The paths where the backups are stored. If not set this field is filled up by the operator.
When provided will indicate where the backups and WAL files will be stored. The first path indicate the coordinator path and the other paths indicate the shards paths
Constraints: optional, updatable |
| performance object |
Configuration that affects the backup network and disk usage performance.
Constraints: optional, updatable |
| reconciliationTimeout integer |
Allows setting a timeout for the reconciliation process that take place after the backup.
If not set defaults to 300 (5 minutes). If set to 0 it will disable timeout. Failure of reconciliation will not make the backup fail and will be re-tried the next time a SGBackup
or shecduled backup Job take place.
Constraints: optional, updatable Default: 300 |
| retainWalsForUnmanagedLifecycle boolean |
If specified, WAL created after any unmanaged lifecycle backups will be retained.
Constraints: optional, updatable |
| retention integer |
When an automatic retention policy is defined to delete old base backups, this parameter specifies the number of base backups to keep, in a sliding window.
Consequently, the time range covered by backups is Default is 5.
Constraints: optional, updatable Minimum: 1 |
| timeout integer |
Allows setting a timeout for the backup creation.
If not set it will be disabled and the backup operation will continue until the backup completes or fail. If set to 0 is the same as not being set. Make sure to set a reasonable high value in order to allow for any unexpected delays during backup creation (network low bandwidth, disk low throughput and so forth).
Constraints: optional, updatable |
| useVolumeSnapshot boolean |
If specified SGBackup will use VolumeSnapshot to create backups.
This functionality still require to store WAL files in an SGObjectStorage but could result in much faster backups and restore of those backups. See also https://kubernetes.io/docs/concepts/storage/volume-snapshots/
Constraints: optional, updatable |
| volumeSnapshotClass string |
The name of the VolumeSnapshotClass to use to create the VolumeSnapshot for backups.
See also https://kubernetes.io/docs/concepts/storage/volume-snapshots/
Constraints: optional, updatable |
Configuration that affects the backup network and disk usage performance.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of files to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
| uploadConcurrency integer |
Backup storage may use several concurrent streams to store the data. This parameter configures the number of parallel streams to use. By default, it’s set to 16.
Constraints: optional, updatable Minimum: 1 |
| uploadDiskConcurrency integer |
Backup storage may use several concurrent streams to store the data. This parameter configures the number of parallel streams to use to reading from disk. By default, it’s set to 1.
Constraints: optional, updatable Minimum: 1 |
This section allows specifying the properties of Service Binding spec for provisioned service. If not specified, then some default will be used.
For more information see https://servicebinding.io/spec/core/1.0.0/
Property |
Description |
|---|---|
| database string |
Allows specifying the database name. If not specified, then the default value is
postgresConstraints: optional, updatable |
| password object |
Allows referencing a Secret that contains the user’s password. If not specified, then the superuser password will be used.
Constraints: optional, updatable |
| provider string |
It’s the reference of custom provider name. If not specified, then the default value will be
stackgresConstraints: optional, updatable |
| username string |
Allows specifying the username. If not specified, then the superuser username will be used.
Constraints: optional, updatable |
Allows referencing a Secret that contains the user’s password. If not specified, then the superuser password will be used.
Property |
Description |
|---|---|
| key string |
The key of the Secret
Constraints: optional, updatable |
| name string |
The name of the Secret
Constraints: optional, updatable |
Allows specifying custom credentials for Postgres users and Patroni REST API
Changing this field may require a restart.
Property |
Description |
|---|---|
| patroni object |
Kubernetes SecretKeySelectors that contains the credentials for patroni REST API.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
| users object |
Kubernetes SecretKeySelectors that contains the credentials of the users.
Changing this field may require a manual modification of the database users to reflect the new values specified. In particular you may have to create those users if username is changed or alter password if it is changed. Here are the SQL commands to perform such operation (replace
default usernames with the new ones and
Changing this field may require a restart.
Constraints: optional, updatable, may require restart |
Kubernetes SecretKeySelectors that contains the credentials for patroni REST API.
Changing this field may require a restart.
Property |
Description |
|---|---|
| restApiPassword object |
A Kubernetes SecretKeySelector that contains the password for the patroni REST API.
Constraints: optional, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the password for the patroni REST API.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
Kubernetes SecretKeySelectors that contains the credentials of the users.
Changing this field may require a manual modification of the database users to reflect the new values specified.
In particular you may have to create those users if username is changed or alter password if it is changed. Here are the SQL commands to perform such operation (replace
default usernames with the new ones and *** with their respective passwords):
CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD '***';
CREATE ROLE replicator;
ALTER ROLE replicator WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN REPLICATION NOBYPASSRLS PASSWORD '***';
CREATE ROLE authenticator;
ALTER ROLE authenticator WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD '***';
Changing this field may require a restart.
Property |
Description |
|---|---|
| authenticator object |
A Kubernetes SecretKeySelector that contains the credentials of the authenticator user used by pgbouncer to authenticate other users.
Constraints: optional, updatable, may require restart |
| replication object |
A Kubernetes SecretKeySelector that contains the credentials of the replication user used to replicate from the primary cluster and from replicas of this cluster.
Constraints: optional, updatable, may require restart |
| superuser object |
A Kubernetes SecretKeySelector that contains the credentials of the superuser (usually the postgres user).
Constraints: optional, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the credentials of the authenticator user used by pgbouncer to authenticate other users.
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: optional, updatable, may require restart |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: optional, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the credentials of the replication user used to replicate from the primary cluster and from replicas of this cluster.
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: optional, updatable, may require restart |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: optional, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the credentials of the superuser (usually the postgres user).
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: optional, updatable, may require restart |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: optional, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable, may require restart |
| name string |
Name of the referent. More information.
Constraints: required, updatable, may require restart |
Allows specifying Observability configuration (related to logs, metrics and traces)
Property |
Description |
|---|---|
| disableMetrics boolean |
If set to
true, avoids creating the Prometheus exporter sidecar. Recommended when there’s no intention to use internal monitoring.
Changing this field may require a restart.
Constraints: optional, updatable, may require restart Default: false |
| prometheusAutobind boolean |
If set to
true, a PodMonitor is created for each Prometheus instance as specified in the SGConfig.spec.collector.prometheusOperator.monitors section.Constraints: optional, updatable Default: false |
| receiver string |
Indicate the receiver in the configuration for the collector scraper (if not specified, will default to prometheus).
Constraints: optional, updatable |
Section to configure the postgres_exporter component.
Property |
Description |
|---|---|
| queries object |
Section to configure the postgres_exporter queries.yaml configuration.
The queries defined here will overwrite those created by the operator. WARNING: Changing this may break some of the functionality that depend on the query overwritten.
Constraints: optional, updatable |
StackGres features a functionality for all pods to send Postgres, Patroni and PgBouncer logs to a central (distributed) location, which is in turn another Postgres database. Logs can then be accessed via SQL interface or from the web UI. This section controls whether to enable this feature or not. If not enabled, logs are sent to the pod’s standard output.
Example:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
distributedLogs:
sgDistributedLogs: distributedlogs
Property |
Description |
|---|---|
| retention string |
Define a retention window with the syntax
<integer> (minutes|hours|days|months) in which log entries are kept.
Log entries will be removed when they get older more than the double of the specified retention window.
When this field is changed the retention will be applied only to log entries that are newer than the end of
the retention window previously specified. If no retention window was previously specified it is considered
to be of 7 days. This means that if previous retention window is of Constraints: optional, updatable |
| sgDistributedLogs string |
Name of the SGDistributedLogs to use for this cluster. It must exist.
Constraints: optional, updatable |
Sharded cluster initialization data options. Sharded cluster may be initialized empty, or from a sharded backup restoration.
This field can only be set on creation.
Property |
Description |
|---|---|
| restore object |
This section allows to restore a sharded cluster from an existing copy of the metadata and data.
Constraints: optional, immutable |
This section allows to restore a sharded cluster from an existing copy of the metadata and data.
Property |
Description |
|---|---|
| downloadDiskConcurrency integer |
The backup fetch process may fetch several streams in parallel. Parallel fetching is enabled when set to a value larger than one.
If not specified it will be interpreted as latest.
Constraints: optional, immutable Minimum: 1 |
| fromBackup object |
From which sharded backup to restore and how the process is configured
Constraints: optional, immutable |
From which sharded backup to restore and how the process is configured
Example:
apiVersion: stackgres.io/v1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
initialData:
restore:
fromBackup:
name: stackgres-backup
downloadDiskConcurrency: 1
Property |
Description |
|---|---|
| name string |
When set to the name of an existing SGShardedBackup, the sharded cluster is initialized by restoring the
backup data to it. If not set, the sharded cluster is initialized empty. The selected sharded backup must be in the same namespace.
Constraints: optional, immutable |
| pointInTimeRecovery object |
It is possible to restore the database to its state at any time since your backup was taken using Point-in-Time Recovery (PITR) as long as another
backup newer than the PITR requested restoration date does not exist.
Point In Time Recovery (PITR). PITR allows restoring the database state to an arbitrary point of time in the past, as long as you specify a backup older than the PITR requested restoration date and does not exist a backup newer than the same restoration date. See also: https://www.postgresql.org/docs/current/continuous-archiving.html
Constraints: optional, immutable |
| targetInclusive boolean |
Specify the recovery_target_inclusive to stop recovery just after the specified
recovery target (true), or just before the recovery target (false). Applies when targetLsn, pointInTimeRecovery, or targetXid is specified. This
setting controls whether transactions having exactly the target WAL location (LSN), commit time, or transaction ID, respectively, will be included
in the recovery. Default is true.
Constraints: optional, immutable |
It is possible to restore the database to its state at any time since your backup was taken using Point-in-Time Recovery (PITR) as long as another backup newer than the PITR requested restoration date does not exist.
Point In Time Recovery (PITR). PITR allows restoring the database state to an arbitrary point of time in the past, as long as you specify a backup older than the PITR requested restoration date and does not exist a backup newer than the same restoration date.
See also: https://www.postgresql.org/docs/current/continuous-archiving.html
Property |
Description |
|---|---|
| restoreToTimestamp string |
An ISO 8601 date, that holds UTC date indicating at which point-in-time the database have to be restored.
Constraints: optional, immutable |
Metadata information from any cluster created resources.
Property |
Description |
|---|---|
| annotations object |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
| labels object |
Custom Kubernetes [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to be passed to resources created and managed by StackGres.
Constraints: optional, updatable |
Custom Kubernetes annotations to be passed to resources created and managed by StackGres.
Example:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
metadata:
annotations:
clusterPods:
customAnnotations: customAnnotationValue
coordinatorPrimaryService:
customAnnotations: customAnnotationValue
coordinatorAnyService:
customAnnotations: customAnnotationValue
shardsPrimariesService:
customAnnotations: customAnnotationValue
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| coordinatorAnyService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| coordinatorPrimaryService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
| shardsPrimariesService map[string]string |
Custom Kubernetes annotations.
Constraints: optional, updatable |
Custom Kubernetes labels to be passed to resources created and managed by StackGres.
Example:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
metadata:
labels:
clusterPods:
customLabel: customLabelValue
services:
customLabel: customLabelValue
Property |
Description |
|---|---|
| allResources map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| clusterPods map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| coordinatorAnyService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| coordinatorPrimaryService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| primaryService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| replicasService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| serviceAccount map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| services map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
| shardsPrimariesService map[string]string |
Custom Kubernetes labels.
Constraints: optional, updatable |
Property |
Description |
|---|---|
| disableClusterPodAntiAffinity boolean |
It is a best practice, on non-containerized environments, when running production workloads, to run each database server on a different server (virtual or physical), i.e., not to co-locate more than one database server per host.
The same best practice applies to databases on containers. By default, StackGres will not allow running more than one StackGres pod on a given Kubernetes node. Set this property to true to allow more than one StackGres pod per node. This property default value may be changed depending on the value of field This property default value may be changed depending on the value of field Constraints: optional, updatable |
| disableClusterResourceRequirements boolean |
It is a best practice, on containerized environments, when running production workloads, to enforce container’s resources requirements.
By default, StackGres will configure resource requirements for all the containers. Set this property to true to prevent StackGres from setting container’s resources requirements (except for patroni container, see This property default value may be changed depending on the value of field Constraints: optional, updatable |
| disablePatroniResourceRequirements boolean |
It is a best practice, on containerized environments, when running production workloads, to enforce container’s resources requirements.
The same best practice applies to databases on containers. By default, StackGres will configure resource requirements for patroni container. Set this property to true to prevent StackGres from setting patroni container’s resources requirement. This property default value may be changed depending on the value of field Constraints: optional, updatable |
| enableSetClusterCpuRequests boolean |
Deprecated this value is ignored and you can consider it as always
true.
On containerized environments, when running production workloads, enforcing container’s cpu requirements request to be equals to the limit allows achieving the highest level of performance. Doing so, reduces the chances of leaving the workload with less cpu than it requires. It also allows setting static CPU management policy that allows to guarantee a pod the usage exclusive CPUs on the node. By default, StackGres will configure cpu requirements to have the same limit and request for all the containers. Set this property to true to prevent StackGres from setting container’s cpu requirements request equals to the limit (except for patroni container, see Constraints: optional, updatable Default: false |
| enableSetClusterMemoryRequests boolean |
Deprecated this value is ignored and you can consider it as always
true.
On containerized environments, when running production workloads, enforcing container’s memory requirements request to be equals to the limit allows achieving the highest level of performance. Doing so, reduces the chances of leaving the workload with less memory than it requires. By default, StackGres will configure memory requirements to have the same limit and request for all the containers. Set this property to true to prevent StackGres from setting container’s memory requirements request equals to the limit (except for patroni container, see Constraints: optional, updatable Default: false |
| enableSetPatroniCpuRequests boolean |
Deprecated this value is ignored and you can consider it as always
true.
On containerized environments, when running production workloads, enforcing container’s cpu requirements request to be equals to the limit allows achieving the highest level of performance. Doing so, reduces the chances of leaving the workload with less cpu than it requires. It also allows setting static CPU management policy that allows to guarantee a pod the usage exclusive CPUs on the node. By default, StackGres will configure cpu requirements to have the same limit and request for the patroni container. Set this property to true to prevent StackGres from setting patroni container’s cpu requirements request equals to the limit
when Constraints: optional, updatable Default: false |
| enableSetPatroniMemoryRequests boolean |
Deprecated this value is ignored and you can consider it as always
true.
On containerized environments, when running production workloads, enforcing container’s memory requirements request to be equals to the limit allows achieving the highest level of performance. Doing so, reduces the chances of leaving the workload with less memory than it requires. By default, StackGres will configure memory requirements to have the same limit and request for the patroni container. Set this property to true to prevent StackGres from setting patroni container’s memory requirements request equals to the limit
when Constraints: optional, updatable Default: false |
| enabledFeatureGates []string |
A list of StackGres feature gates to enable (not suitable for a production environment).
Available feature gates are:
Constraints: optional, updatable |
Kubernetes services created or managed by StackGres.
Property |
Description |
|---|---|
| coordinator object |
Configuration for the coordinator services
Constraints: optional, updatable |
| shards object |
Configuration for the shards services
Constraints: optional, updatable |
Configuration for the coordinator services
Property |
Description |
|---|---|
| any object |
Configure the coordinator service to any instance of the coordinator with the same name as the SGShardedCluster plus the
-reads suffix.
If the sharding type is It provides a stable connection (regardless of node failures) to any Postgres server of the coordinator cluster. Servers are load-balanced via this service. See also https://kubernetes.io/docs/concepts/services-networking/service/
Constraints: optional, updatable |
| customPorts []object |
The list of custom ports that will be exposed by the coordinator services.
The names of custom ports will be prefixed with the string The names of target ports will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#serviceport-v1-core
Constraints: optional, updatable, may require restart |
| primary object |
Configure the coordinator service to the primary of the coordinator with the name as the SGShardedCluster.
If the sharding type is It provides a stable connection (regardless of primary failures or switchovers) to the read-write Postgres server of the coordinator cluster. See also https://kubernetes.io/docs/concepts/services-networking/service/
Constraints: optional, updatable |
Configure the coordinator service to any instance of the coordinator with the same name as the SGShardedCluster plus the -reads suffix.
If the sharding type is shardingsphere then the name of the service will be the same name as the SGShardedCluster.
It provides a stable connection (regardless of node failures) to any Postgres server of the coordinator cluster. Servers are load-balanced via this service.
See also https://kubernetes.io/docs/concepts/services-networking/service/
Property |
Description |
|---|---|
| allocateLoadBalancerNodePorts boolean |
allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is “true”. It may be set to “false” if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.
Constraints: optional, updatable |
| enabled boolean |
Specify if the service should be created or not.
Constraints: optional, updatable |
| externalIPs []string |
externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.
Constraints: optional, updatable |
| externalTrafficPolicy string |
externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service’s “externally-facing” addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to “Local”, the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get “Cluster” semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.
Constraints: optional, updatable |
| healthCheckNodePort integer |
healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.
Constraints: optional, updatable Format: int32 |
| internalTrafficPolicy string |
InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to “Local”, the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).
Constraints: optional, updatable |
| ipFamilies []string |
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are “IPv4” and “IPv6”. This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to “headless” services. This field will be wiped when updating a Service to type ExternalName.
This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. Constraints: optional, updatable |
| ipFamilyPolicy string |
IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be “SingleStack” (a single IP family), “PreferDualStack” (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or “RequireDualStack” (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
Constraints: optional, updatable |
| loadBalancerClass string |
loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. “internal-vip” or “example.com/internal-vip”. Unprefixed names are reserved for end-users. This field can only be set when the Service type is ‘LoadBalancer’. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type ‘LoadBalancer’. Once set, it can not be changed. This field will be wiped when a service is updated to a non ‘LoadBalancer’ type.
Constraints: optional, updatable |
| loadBalancerIP string |
Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.
Constraints: optional, updatable |
| loadBalancerSourceRanges []string |
If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.” More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
Constraints: optional, updatable |
| nodePorts object |
nodePorts is a list of ports for exposing a cluster services to the outside world
Constraints: optional, updatable |
| publishNotReadyAddresses boolean |
publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet’s Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered “ready” even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.
Constraints: optional, updatable |
| sessionAffinity string |
Supports “ClientIP” and “None”. Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Constraints: optional, updatable |
| sessionAffinityConfig object |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core Constraints: optional, updatable |
| type enum |
type determines how the Service is exposed. Defaults to ClusterIP. Valid
options are ClusterIP, NodePort, LoadBalancer and None. “ClusterIP” allocates
a cluster-internal IP address for load-balancing to endpoints.
“NodePort” builds on ClusterIP and allocates a port on every node.
“LoadBalancer” builds on NodePort and creates
an external load-balancer (if supported in the current cloud).
“None” creates an headless service that can be use in conjunction with
.spec.pods.disableEnvoy
set to true in order to acces the database using a DNS.
More info:
Constraints: optional, updatable Enum: ClusterIP, LoadBalancer, NodePort, None |
nodePorts is a list of ports for exposing a cluster services to the outside world
Property |
Description |
|---|---|
| pgport integer |
the node port that will be exposed to connect to Postgres instance
Constraints: optional, updatable |
| replicationport integer |
the node port that will be exposed to connect to Postgres instance for replication purpose
Constraints: optional, updatable |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core
Property |
Description |
|---|---|
| clientIP object |
ClientIPConfig represents the configurations of Client IP based session affinity.
Constraints: optional, updatable |
ClientIPConfig represents the configurations of Client IP based session affinity.
Property |
Description |
|---|---|
| timeoutSeconds integer |
timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == “ClientIP”. Default value is 10800(for 3 hours).
Constraints: optional, updatable Format: int32 |
Configure the coordinator service to the primary of the coordinator with the name as the SGShardedCluster.
If the sharding type is shardingsphere then this service will be disabled.
It provides a stable connection (regardless of primary failures or switchovers) to the read-write Postgres server of the coordinator cluster.
See also https://kubernetes.io/docs/concepts/services-networking/service/
Property |
Description |
|---|---|
| allocateLoadBalancerNodePorts boolean |
allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is “true”. It may be set to “false” if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.
Constraints: optional, updatable |
| enabled boolean |
Specify if the service should be created or not.
Constraints: optional, updatable |
| externalIPs []string |
externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.
Constraints: optional, updatable |
| externalTrafficPolicy string |
externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service’s “externally-facing” addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to “Local”, the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get “Cluster” semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.
Constraints: optional, updatable |
| healthCheckNodePort integer |
healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.
Constraints: optional, updatable Format: int32 |
| internalTrafficPolicy string |
InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to “Local”, the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).
Constraints: optional, updatable |
| ipFamilies []string |
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are “IPv4” and “IPv6”. This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to “headless” services. This field will be wiped when updating a Service to type ExternalName.
This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. Constraints: optional, updatable |
| ipFamilyPolicy string |
IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be “SingleStack” (a single IP family), “PreferDualStack” (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or “RequireDualStack” (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
Constraints: optional, updatable |
| loadBalancerClass string |
loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. “internal-vip” or “example.com/internal-vip”. Unprefixed names are reserved for end-users. This field can only be set when the Service type is ‘LoadBalancer’. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type ‘LoadBalancer’. Once set, it can not be changed. This field will be wiped when a service is updated to a non ‘LoadBalancer’ type.
Constraints: optional, updatable |
| loadBalancerIP string |
Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.
Constraints: optional, updatable |
| loadBalancerSourceRanges []string |
If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.” More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
Constraints: optional, updatable |
| nodePorts object |
nodePorts is a list of ports for exposing a cluster services to the outside world
Constraints: optional, updatable |
| publishNotReadyAddresses boolean |
publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet’s Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered “ready” even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.
Constraints: optional, updatable |
| sessionAffinity string |
Supports “ClientIP” and “None”. Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Constraints: optional, updatable |
| sessionAffinityConfig object |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core Constraints: optional, updatable |
| type enum |
type determines how the Service is exposed. Defaults to ClusterIP. Valid
options are ClusterIP, NodePort, LoadBalancer and None. “ClusterIP” allocates
a cluster-internal IP address for load-balancing to endpoints.
“NodePort” builds on ClusterIP and allocates a port on every node.
“LoadBalancer” builds on NodePort and creates
an external load-balancer (if supported in the current cloud).
“None” creates an headless service that can be use in conjunction with
.spec.pods.disableEnvoy
set to true in order to acces the database using a DNS.
More info:
Constraints: optional, updatable Enum: ClusterIP, LoadBalancer, NodePort, None |
nodePorts is a list of ports for exposing a cluster services to the outside world
Property |
Description |
|---|---|
| pgport integer |
the node port that will be exposed to connect to Postgres instance
Constraints: optional, updatable |
| replicationport integer |
the node port that will be exposed to connect to Postgres instance for replication purpose
Constraints: optional, updatable |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core
Property |
Description |
|---|---|
| clientIP object |
ClientIPConfig represents the configurations of Client IP based session affinity.
Constraints: optional, updatable |
ClientIPConfig represents the configurations of Client IP based session affinity.
Property |
Description |
|---|---|
| timeoutSeconds integer |
timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == “ClientIP”. Default value is 10800(for 3 hours).
Constraints: optional, updatable Format: int32 |
Configuration for the shards services
Property |
Description |
|---|---|
| customPorts []object |
The list of custom ports that will be exposed by the shards services.
The names of custom ports will be prefixed with the string The names of target ports will be prefixed with the string Changing this field may require a restart. See: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#serviceport-v1-core
Constraints: optional, updatable, may require restart |
| primaries object |
Configure the shards service to any primary in the shards with the name as the SGShardedCluster plus the
-shards suffix.
It provides a stable connection (regardless of primary failures or switchovers) to read-write Postgres servers of any shard cluster. Read-write servers are load-balanced via this service. See also https://kubernetes.io/docs/concepts/services-networking/service/
Constraints: optional, updatable |
Configure the shards service to any primary in the shards with the name as the SGShardedCluster plus the -shards suffix.
It provides a stable connection (regardless of primary failures or switchovers) to read-write Postgres servers of any shard cluster. Read-write servers are load-balanced via this service.
See also https://kubernetes.io/docs/concepts/services-networking/service/
Property |
Description |
|---|---|
| allocateLoadBalancerNodePorts boolean |
allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is “true”. It may be set to “false” if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.
Constraints: optional, updatable |
| enabled boolean |
Specify if the service should be created or not.
Constraints: optional, updatable |
| externalIPs []string |
externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.
Constraints: optional, updatable |
| externalTrafficPolicy string |
externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service’s “externally-facing” addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to “Local”, the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get “Cluster” semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.
Constraints: optional, updatable |
| healthCheckNodePort integer |
healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.
Constraints: optional, updatable Format: int32 |
| internalTrafficPolicy string |
InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to “Local”, the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, “Cluster”, uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).
Constraints: optional, updatable |
| ipFamilies []string |
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are “IPv4” and “IPv6”. This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to “headless” services. This field will be wiped when updating a Service to type ExternalName.
This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. Constraints: optional, updatable |
| ipFamilyPolicy string |
IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be “SingleStack” (a single IP family), “PreferDualStack” (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or “RequireDualStack” (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
Constraints: optional, updatable |
| loadBalancerClass string |
loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. “internal-vip” or “example.com/internal-vip”. Unprefixed names are reserved for end-users. This field can only be set when the Service type is ‘LoadBalancer’. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type ‘LoadBalancer’. Once set, it can not be changed. This field will be wiped when a service is updated to a non ‘LoadBalancer’ type.
Constraints: optional, updatable |
| loadBalancerIP string |
Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.
Constraints: optional, updatable |
| loadBalancerSourceRanges []string |
If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
Constraints: optional, updatable |
| nodePorts object |
nodePorts is a list of ports for exposing a cluster services to the outside world
Constraints: optional, updatable |
| publishNotReadyAddresses boolean |
publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet’s Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered “ready” even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.
Constraints: optional, updatable |
| sessionAffinity string |
Supports “ClientIP” and “None”. Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Constraints: optional, updatable |
| sessionAffinityConfig object |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core Constraints: optional, updatable |
| type enum |
type determines how the Service is exposed. Defaults to ClusterIP. Valid
options are ClusterIP, NodePort, LoadBalancer and None. “ClusterIP” allocates
a cluster-internal IP address for load-balancing to endpoints.
“NodePort” builds on ClusterIP and allocates a port on every node.
“LoadBalancer” builds on NodePort and creates
an external load-balancer (if supported in the current cloud).
“None” creates an headless service that can be use in conjunction with
.spec.pods.disableEnvoy
set to true in order to acces the database using a DNS.
More info:
Constraints: optional, updatable Enum: ClusterIP, LoadBalancer, NodePort, None |
nodePorts is a list of ports for exposing a cluster services to the outside world
Property |
Description |
|---|---|
| pgport integer |
the node port that will be exposed to connect to Postgres instance
Constraints: optional, updatable |
| replicationport integer |
the node port that will be exposed to connect to Postgres instance for replication purpose
Constraints: optional, updatable |
SessionAffinityConfig represents the configurations of session affinity.
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sessionaffinityconfig-v1-core
Property |
Description |
|---|---|
| clientIP object |
ClientIPConfig represents the configurations of Client IP based session affinity.
Constraints: optional, updatable |
ClientIPConfig represents the configurations of Client IP based session affinity.
Property |
Description |
|---|---|
| timeoutSeconds integer |
timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == “ClientIP”. Default value is 10800(for 3 hours).
Constraints: optional, updatable Format: int32 |
Make the sharded cluster a read-only standby replica allowing replication from another sharded cluster and acting as a relay.
Changing this section is allowed to fix issues or to change the replication source.
Removing this section convert the sharded cluster in a normal sharded cluster where the standby leader of each SGCluster is converted into a primary instance.
Example:
From SGShardedCluster instance:
apiVersion: stackgres.io/v1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
replicateFrom:
instance:
sgShardedCluster: my-cluster
Note: The above example allows replicating from another SGShardedCluster instance that in the same namespace and the same K8s cluster.
This option cannot be combined with external sharded cluster instance, storage and users.
From external sharded cluster instance:
apiVersion: stackgres.io/v1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
replicateFrom:
instance:
external:
hosts: ["${COORDINATOR_HOST_IP}","${SHARD_0_HOST_IP}","${SHARD_1_HOST_IP}"]
ports: [5433,5433,5433]
users:
superuser:
username:
name: pg-origin-secret
key: superuser-username
password:
name: pg-origin-secret
key: superuser-password
replication:
username:
name: pg-origin-secret
key: replication-username
password:
name: pg-origin-secret
key: replication-password
authenticator:
username:
name: pg-origin-secret
key: authenticator-username
password:
name: pg-origin-secret
key: authenticator-password
Note: Replace the ${COORDINATOR_HOST_IP}, ${SHARD_0_HOST_IP} and ${SHARD_1_HOST_IP} with the actual IPs of the external sharded cluster instance.
From Storage:
apiVersion: stackgres.io/v1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
initialData:
restore:
fromBackup:
name: backup-name
replicateFrom:
storage:
paths: ["${PG_ORIGIN_COORDINATOR_BACKUP_PATH}","${PG_ORIGIN_SHARD_0_BACKUP_PATH}","${PG_ORIGIN_SHARD_1_BACKUP_PATH}"]
sgObjectStorage: stackgres-backups
users:
superuser:
username:
name: pg-origin-secret
key: superuser-username
password:
name: pg-origin-secret
key: superuser-password
replication:
username:
name: pg-origin-secret
key: replication-username
password:
name: pg-origin-secret
key: replication-password
authenticator:
username:
name: pg-origin-secret
key: authenticator-username
password:
name: pg-origin-secret
key: authenticator-password
Note: Using storage only to replicate from requires to recover from a backup in order to bootstrap the database.
Replace the ${PG_ORIGIN_COORDINATOR_BACKUP_PATH}, ${PG_ORIGIN_SHARD_0_BACKUP_PATH}, ${PG_ORIGIN_SHARD_1_BACKUP_PATH} with the actual paths in the object storage where the backups are stored.
From external instance and storage:
apiVersion: stackgres.io/v1alpha1
kind: SGShardedCluster
metadata:
name: stackgres
spec:
replicateFrom:
instance:
external:
hosts: ["${COORDINATOR_HOST_IP}","${SHARD_0_HOST_IP}","${SHARD_1_HOST_IP}"]
ports: [5433,5433,5433]
storage:
paths: ["${PG_ORIGIN_COORDINATOR_BACKUP_PATH}","${PG_ORIGIN_SHARD_0_BACKUP_PATH}","${PG_ORIGIN_SHARD_1_BACKUP_PATH}"]
sgObjectStorage: stackgres-backups
users:
superuser:
username:
name: pg-origin-secret
key: superuser-username
password:
name: pg-origin-secret
key: superuser-password
replication:
username:
name: pg-origin-secret
key: replication-username
password:
name: pg-origin-secret
key: replication-password
authenticator:
username:
name: pg-origin-secret
key: authenticator-username
password:
name: pg-origin-secret
key: authenticator-password
Note: Replace the ${COORDINATOR_HOST_IP}, ${SHARD_0_HOST_IP} and ${SHARD_1_HOST_IP} with the actual IPs of the external sharded cluster instance.
Replace the ${PG_ORIGIN_COORDINATOR_BACKUP_PATH}, ${PG_ORIGIN_SHARD_0_BACKUP_PATH}, ${PG_ORIGIN_SHARD_1_BACKUP_PATH} with the actual paths in the object storage where the backups are stored.
Property |
Description |
|---|---|
| instance object |
Configure replication from a PostgreSQL sharded cluster instance.
Constraints: optional, updatable |
| storage object |
Configure replication from an SGObjectStorage using WAL shipping.
The file structure of the object storage must follow the
WAL-G file structure.
Constraints: optional, updatable |
| users object |
Kubernetes SecretKeySelectors that contains the credentials of the users.
Constraints: optional, updatable |
Configure replication from a PostgreSQL sharded cluster instance.
Property |
Description |
|---|---|
| external object |
Configure replication from an external PostgreSQL instance.
Constraints: optional, updatable |
| sgShardedCluster string |
Configure replication from an SGShardedCluster.
Constraints: optional, updatable |
Configure replication from an external PostgreSQL instance.
Property |
Description |
|---|---|
| hosts []string |
The hosts of the PostgreSQL instances to replicate from.
Constraints: required, updatable |
| ports []integer |
The ports of the PostgreSQL instances to replicate from.
Constraints: required, updatable |
Configure replication from an SGObjectStorage using WAL shipping.
The file structure of the object storage must follow the WAL-G file structure.
Property |
Description |
|---|---|
| paths []string |
The paths in the SGObjectStorage to replicate from.
Constraints: required, updatable |
| sgObjectStorage string |
The SGObjectStorage name to replicate from.
Constraints: required, updatable |
| performance object |
Configuration that affects the backup network and disk usage performance during recovery.
Constraints: optional, updatable |
Configuration that affects the backup network and disk usage performance during recovery.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of files to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
Kubernetes SecretKeySelectors that contains the credentials of the users.
Property |
Description |
|---|---|
| authenticator object |
A Kubernetes SecretKeySelector that contains the credentials of the authenticator user used by pgbouncer to authenticate other users.
Constraints: required, updatable |
| replication object |
A Kubernetes SecretKeySelector that contains the credentials of the replication user used to replicate from the primary cluster and from replicas of this cluster.
Constraints: required, updatable |
| superuser object |
A Kubernetes SecretKeySelector that contains the credentials of the superuser (usually the postgres user).
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the credentials of the authenticator user used by pgbouncer to authenticate other users.
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: required, updatable |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the credentials of the replication user used to replicate from the primary cluster and from replicas of this cluster.
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: required, updatable |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the credentials of the superuser (usually the postgres user).
Property |
Description |
|---|---|
| password object |
A Kubernetes SecretKeySelector that contains the password of the user.
Constraints: required, updatable |
| username object |
A Kubernetes SecretKeySelector that contains the username of the user.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the password of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
A Kubernetes SecretKeySelector that contains the username of the user.
Property |
Description |
|---|---|
| key string |
The key of the secret to select from. Must be a valid secret key.
Constraints: required, updatable |
| name string |
Name of the referent. More information.
Constraints: required, updatable |
This section allows to configure the global Postgres replication mode.
The main replication group is implicit and contains the total number of instances less the sum of all instances in other replication groups.
The total number of instances is always specified by .spec.instances.
Property |
Description |
|---|---|
| initialization object |
Allows specifying how the replicas are initialized.
Constraints: optional, updatable |
| mode string |
The replication mode applied to the whole cluster.
Possible values are:
async When in asynchronous mode the cluster is allowed to lose some committed transactions. When the primary server fails or becomes unavailable for any other reason a sufficiently healthy standby will automatically be promoted to primary. Any transactions that have not been replicated to that standby remain in a “forked timeline” on the primary, and are effectively unrecoverable (the data is still there, but recovering it requires a manual recovery effort by data recovery specialists). sync When in synchronous mode a standby will not be promoted unless it is certain that the standby contains all
transactions that may have returned a successful commit status to client (clients can change the behavior
per transaction using PostgreSQL’s Synchronous mode does not guarantee multi node durability of commits under all circumstances. When no suitable standby is available, primary server will still accept writes, but does not guarantee their replication. When the primary fails in this mode no standby will be promoted. When the host that used to be the primary comes back it will get promoted automatically, unless system administrator performed a manual failover. This behavior makes synchronous mode usable with 2 node clusters. When synchronous mode is used and a standby crashes, commits will block until the primary is switched to standalone mode. Manually shutting down or restarting a standby will not cause a commit service interruption. Standby will signal the primary to release itself from synchronous standby duties before PostgreSQL shutdown is initiated. strict-sync When it is absolutely necessary to guarantee that each write is stored durably on at least two nodes, use the strict
synchronous mode. This mode prevents synchronous replication to be switched off on the primary when no synchronous
standby candidates are available. As a downside, the primary will not be available for writes (unless the Postgres
transaction explicitly turns off Note: Because of the way synchronous replication is implemented in PostgreSQL it is still possible to lose transactions even when using strict synchronous mode. If the PostgreSQL backend is cancelled while waiting to acknowledge replication (as a result of packet cancellation due to client timeout or backend failure) transaction changes become visible for other backends. Such changes are not yet replicated and may be lost in case of standby promotion. sync-all The same as strict-sync-all The same as Constraints: optional, updatable Default: async |
| syncInstances integer |
Number of synchronous standby instances. Must be less than the total number of instances. It is set to 1 by default.
Only setteable if mode is
sync or strict-sync.
Constraints: optional, updatable Minimum: 1 |
Allows specifying how the replicas are initialized.
Property |
Description |
|---|---|
| backupNewerThan string |
An ISO 8601 duration in the format
PnDTnHnMn.nS, that specifies how old an SGBackup have to be in order to be seleceted
to initialize a replica.
When When Constraints: optional, updatable |
| backupRestorePerformance object |
Configuration that affects the backup network and disk usage performance during recovery.
Constraints: optional, updatable |
| mode string |
Allows specifying how the replicas are initialized.
Possible values are:
Constraints: optional, updatable Default: FromExistingBackup |
Configuration that affects the backup network and disk usage performance during recovery.
Property |
Description |
|---|---|
| downloadConcurrency integer |
Backup storage may use several concurrent streams to read the data. This parameter configures the number of parallel streams to use. By default, it’s set to the minimum between the number of file to read and 10.
Constraints: optional, updatable Minimum: 1 |
| maxDiskBandwidth integer |
Maximum disk read I/O when performing a backup. In bytes (per second).
Constraints: optional, updatable |
| maxNetworkBandwidth integer |
Maximum storage upload bandwidth used when storing a backup. In bytes (per second).
Constraints: optional, updatable |
Current status of a StackGres sharded cluster.
Property |
Description |
|---|---|
| binding object |
This section follow the schema specified in Service Binding spec for provisioned service.
For more information see https://servicebinding.io/spec/core/1.0.0/
Constraints: optional, updatable |
| buildVersion string |
The Postgres build version used to generate the SGShardedCluster’s SGClusters
Constraints: optional, updatable |
| clusterStatuses []object |
The list of cluster statuses.
Constraints: optional, updatable |
| conditions []object |
Constraints: optional, updatable |
| extensions []object |
The list of Postgres extensions to install.
This section is filled by the operator.
Constraints: optional, updatable |
| postgresVersion string |
The Postgres version used to generate the SGShardedCluster’s SGClusters
Constraints: optional, updatable |
| sgBackups []string |
The list of SGBackups that compose the SGShardedBackup used to restore the sharded cluster.
Constraints: optional, updatable |
| toInstallPostgresExtensions []object |
Deprecated replaced by
extensions.
The list of Postgres extensions to install
Constraints: optional, updatable |
This section follow the schema specified in Service Binding spec for provisioned service.
For more information see https://servicebinding.io/spec/core/1.0.0/
Property |
Description |
|---|---|
| name string |
The name of the Secret as specified in Service Binding spec for provisioned service.
Constraints: optional, updatable |
Property |
Description |
|---|---|
| name string |
The name of the cluster.
Constraints: required, updatable |
| pendingRestart boolean |
Indicates if the cluster requires restart
Constraints: optional, updatable |
Property |
Description |
|---|---|
| lastTransitionTime string |
Last time the condition transitioned from one status to another.
Constraints: optional, updatable |
| message string |
A human readable message indicating details about the transition.
Constraints: optional, updatable |
| reason string |
The reason for the condition’s last transition.
Constraints: optional, updatable |
| status string |
Status of the condition, one of True, False, Unknown.
Constraints: optional, updatable |
| type string |
Type of deployment condition.
Constraints: optional, updatable |
Property |
Description |
|---|---|
| name string |
The name of the extension to install.
Constraints: required, updatable |
| postgresVersion string |
The postgres major version of the extension to install.
Constraints: required, updatable |
| publisher string |
The id of the publisher of the extension to install.
Constraints: required, updatable |
| repository string |
The repository base URL from where the extension will be installed from.
Constraints: required, updatable |
| version string |
The version of the extension to install.
Constraints: required, updatable |
| build string |
The build version of the extension to install.
Constraints: optional, updatable |
| extraMounts []string |
The extra mounts of the extension to install.
Constraints: optional, updatable |
Property |
Description |
|---|---|
| name string |
The name of the extension to install.
Constraints: required, updatable |
| postgresVersion string |
The postgres major version of the extension to install.
Constraints: required, updatable |
| publisher string |
The id of the publisher of the extension to install.
Constraints: required, updatable |
| repository string |
The repository base URL from where the extension will be installed from.
Constraints: required, updatable |
| version string |
The version of the extension to install.
Constraints: required, updatable |
| build string |
The build version of the extension to install.
Constraints: optional, updatable |
| extraMounts []string |
The extra mounts of the extension to install.
Constraints: optional, updatable |