@kubernetes-models/fission
Version:
785 lines (784 loc) • 363 kB
TypeScript
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
/**
* MessageQueueTrigger invokes functions when messages arrive to certain topic that trigger subscribes to.
*/
export interface IMessageQueueTrigger {
/**
* APIVersion defines the versioned schema of this representation of an object.
* Servers should convert recognized schemas to the latest internal value, and
* may reject unrecognized values.
* More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
*/
"apiVersion": "fission.io/v1";
/**
* Kind is a string value representing the REST resource this object represents.
* Servers may infer this from the endpoint the client submits requests to.
* Cannot be updated.
* In CamelCase.
* More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
*/
"kind": "MessageQueueTrigger";
"metadata": IObjectMeta;
/**
* MessageQueueTriggerSpec defines a binding from a topic in a
* message queue to a function.
*/
"spec": {
/**
* Content type of payload
*/
"contentType"?: string;
/**
* The period to wait after the last trigger reported active before scaling the deployment back to 0
*/
"cooldownPeriod"?: number;
/**
* Topic to collect error response sent from function
*/
"errorTopic"?: string;
/**
* The reference to a function for message queue trigger to invoke with
* when receiving messages from subscribed topic.
*/
"functionref"?: {
/**
* Function Reference by weight. this map contains function name as key and its weight
* as the value. This is for canary upgrade purpose.
*/
"functionweights"?: {
[key: string]: number;
};
/**
* Name of the function.
*/
"name": string;
/**
* Type indicates whether this function reference is by name or selector. For now,
* the only supported reference type is by "name". Future reference types:
* \* Function by label or annotation
* \* Branch or tag of a versioned function
* \* A "rolling upgrade" from one version of a function to another
* Available value:
* - name
* - function-weights
*/
"type": string;
};
/**
* Maximum number of replicas KEDA will scale the deployment up to
*/
"maxReplicaCount"?: number;
/**
* Maximum times for message queue trigger to retry
*/
"maxRetries"?: number;
/**
* Type of message queue (NATS, Kafka, AzureQueue)
*/
"messageQueueType"?: string;
/**
* ScalerTrigger fields
*/
"metadata"?: {
[key: string]: string;
};
/**
* Minimum number of replicas KEDA will scale the deployment down to
*/
"minReplicaCount"?: number;
/**
* Kind of Message Queue Trigger to be created, by default its fission
*/
"mqtkind"?: string;
/**
* (Optional) Podspec allows modification of deployed runtime pod with Kubernetes PodSpec
* The merging logic is briefly described below and detailed MergePodSpec function
* - Volumes mounts and env variables for function and fetcher container are appended
* - All additional containers and init containers are appended
* - Volume definitions are appended
* - Lists such as tolerations, ImagePullSecrets, HostAliases are appended
* - Structs are merged and variables from pod spec take precedence
*/
"podspec"?: {
/**
* Optional duration in seconds the pod may be active on the node relative to
* StartTime before the system will actively try to mark it failed and kill associated containers.
* Value must be a positive integer.
*/
"activeDeadlineSeconds"?: number;
/**
* If specified, the pod's scheduling constraints
*/
"affinity"?: {
/**
* Describes node affinity scheduling rules for the pod.
*/
"nodeAffinity"?: {
/**
* 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.
*/
"preferredDuringSchedulingIgnoredDuringExecution"?: Array<{
/**
* A node selector term, associated with the corresponding weight.
*/
"preference": {
/**
* A list of node selector requirements by node's labels.
*/
"matchExpressions"?: Array<{
/**
* The label key that the selector applies to.
*/
"key": string;
/**
* Represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
*/
"operator": 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.
*/
"values"?: Array<string>;
}>;
/**
* A list of node selector requirements by node's fields.
*/
"matchFields"?: Array<{
/**
* The label key that the selector applies to.
*/
"key": string;
/**
* Represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
*/
"operator": 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.
*/
"values"?: Array<string>;
}>;
};
/**
* Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
*/
"weight": number;
}>;
/**
* 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 an update), the system
* may or may not try to eventually evict the pod from its node.
*/
"requiredDuringSchedulingIgnoredDuringExecution"?: {
/**
* Required. A list of node selector terms. The terms are ORed.
*/
"nodeSelectorTerms": Array<{
/**
* A list of node selector requirements by node's labels.
*/
"matchExpressions"?: Array<{
/**
* The label key that the selector applies to.
*/
"key": string;
/**
* Represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
*/
"operator": 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.
*/
"values"?: Array<string>;
}>;
/**
* A list of node selector requirements by node's fields.
*/
"matchFields"?: Array<{
/**
* The label key that the selector applies to.
*/
"key": string;
/**
* Represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
*/
"operator": 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.
*/
"values"?: Array<string>;
}>;
}>;
};
};
/**
* Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
*/
"podAffinity"?: {
/**
* 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.
*/
"preferredDuringSchedulingIgnoredDuringExecution"?: Array<{
/**
* Required. A pod affinity term, associated with the corresponding weight.
*/
"podAffinityTerm": {
/**
* A label query over a set of resources, in this case pods.
* If it's null, this PodAffinityTerm matches with no Pods.
*/
"labelSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"matchLabelKeys"?: Array<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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"mismatchLabelKeys"?: Array<string>;
/**
* A label query over the set of namespaces that the term applies to.
* The term is applied to the union of the namespaces selected by this field
* and the ones listed in the namespaces field.
* null selector and null or empty namespaces list means "this pod's namespace".
* An empty selector ({}) matches all namespaces.
*/
"namespaceSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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".
*/
"namespaces"?: Array<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.
*/
"topologyKey": string;
};
/**
* weight associated with matching the corresponding podAffinityTerm,
* in the range 1-100.
*/
"weight": number;
}>;
/**
* 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.
*/
"requiredDuringSchedulingIgnoredDuringExecution"?: Array<{
/**
* A label query over a set of resources, in this case pods.
* If it's null, this PodAffinityTerm matches with no Pods.
*/
"labelSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"matchLabelKeys"?: Array<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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"mismatchLabelKeys"?: Array<string>;
/**
* A label query over the set of namespaces that the term applies to.
* The term is applied to the union of the namespaces selected by this field
* and the ones listed in the namespaces field.
* null selector and null or empty namespaces list means "this pod's namespace".
* An empty selector ({}) matches all namespaces.
*/
"namespaceSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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".
*/
"namespaces"?: Array<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.
*/
"topologyKey": string;
}>;
};
/**
* Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
*/
"podAntiAffinity"?: {
/**
* 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 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.
*/
"preferredDuringSchedulingIgnoredDuringExecution"?: Array<{
/**
* Required. A pod affinity term, associated with the corresponding weight.
*/
"podAffinityTerm": {
/**
* A label query over a set of resources, in this case pods.
* If it's null, this PodAffinityTerm matches with no Pods.
*/
"labelSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"matchLabelKeys"?: Array<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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"mismatchLabelKeys"?: Array<string>;
/**
* A label query over the set of namespaces that the term applies to.
* The term is applied to the union of the namespaces selected by this field
* and the ones listed in the namespaces field.
* null selector and null or empty namespaces list means "this pod's namespace".
* An empty selector ({}) matches all namespaces.
*/
"namespaceSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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".
*/
"namespaces"?: Array<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.
*/
"topologyKey": string;
};
/**
* weight associated with matching the corresponding podAffinityTerm,
* in the range 1-100.
*/
"weight": number;
}>;
/**
* 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.
*/
"requiredDuringSchedulingIgnoredDuringExecution"?: Array<{
/**
* A label query over a set of resources, in this case pods.
* If it's null, this PodAffinityTerm matches with no Pods.
*/
"labelSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"matchLabelKeys"?: Array<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.
* This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
*/
"mismatchLabelKeys"?: Array<string>;
/**
* A label query over the set of namespaces that the term applies to.
* The term is applied to the union of the namespaces selected by this field
* and the ones listed in the namespaces field.
* null selector and null or empty namespaces list means "this pod's namespace".
* An empty selector ({}) matches all namespaces.
*/
"namespaceSelector"?: {
/**
* matchExpressions is a list of label selector requirements. The requirements are ANDed.
*/
"matchExpressions"?: Array<{
/**
* key is the label key that the selector applies to.
*/
"key": string;
/**
* operator represents a key's relationship to a set of values.
* Valid operators are In, NotIn, Exists and DoesNotExist.
*/
"operator": 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.
*/
"values"?: Array<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.
*/
"matchLabels"?: {
[key: string]: 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".
*/
"namespaces"?: Array<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.
*/
"topologyKey": string;
}>;
};
};
/**
* AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
*/
"automountServiceAccountToken"?: boolean;
/**
* List of containers belonging to the pod.
* Containers cannot currently be added or removed.
* There must be at least one container in a Pod.
* Cannot be updated.
*/
"containers": Array<{
/**
* Arguments to the entrypoint.
* The container image's CMD is used if this is not provided.
* Variable references $(VAR_NAME) are expanded using the container's environment. If a variable