Question: What is kubectl Usage Conventions?

Answer: kubectl Usage ConventionsRecommended usage conventions for kubectl.Using kubectl in Reusable ScriptsFor a stable output in a script:Request one of the machine-oriented output forms, such as -o name, -o json, -o yaml, -o go-template, or -o jsonpath.Fully-qualify the version. For example, jobs.v1.batch/myjob. This will ensure that kubectl does not use its default version that can change over time.Don't rely on context, preferences, or other implicit states.SubresourcesYou can use the --subresource argument for kubectl subcommands such as get, patch, edit, apply and replace to fetch and update subresources for all resources that support them. In Kubernetes version 1.34, only the status, scale and resize subresources are supported.For kubectl edit, the scale subresource is not supported. If you use --subresource with kubectl edit and specify scale as the subresource, the command will error out.The API contract against a subresource is identical to a full resource. While updating the status subresource to a new value, keep in mind that the subresource could be potentially reconciled by a controller to a different value.Best Practiceskubectl runFor kubectl run to satisfy infrastructure as code:Tag the image with a version-specific tag and don't move that tag to a new version. For example, use :v1234, v1.2.3, r03062016-1-4, rather than :latest (For more information, see Best Practices for Configuration).Check in the script for an image that is heavily parameterized.Switch to configuration files checked into source control for features that are needed, but not expressible via kubectl run flags.You can use the --dry-run=client flag to preview the object that would be sent to your cluster, without really submitting it.kubectl applyYou can use kubectl apply to create or update resources. For more information about using kubectl apply to update resources, see Kubectl Book.


Question: How does kubectl Usage Conventions work?

Answer: kubectl Usage ConventionsRecommended usage conventions for kubectl.Using kubectl in Reusable ScriptsFor a stable output in a script:Request one of the machine-oriented output forms, such as -o name, -o json, -o yaml, -o go-template, or -o jsonpath.Fully-qualify the version. For example, jobs.v1.batch/myjob. This will ensure that kubectl does not use its default version that can change over time.Don't rely on context, preferences, or other implicit states.SubresourcesYou can use the --subresource argument for kubectl subcommands such as get, patch, edit, apply and replace to fetch and update subresources for all resources that support them. In Kubernetes version 1.34, only the status, scale and resize subresources are supported.For kubectl edit, the scale subresource is not supported. If you use --subresource with kubectl edit and specify scale as the subresource, the command will error out.The API contract against a subresource is identical to a full resource. While updating the status subresource to a new value, keep in mind that the subresource could be potentially reconciled by a controller to a different value.Best Practiceskubectl runFor kubectl run to satisfy infrastructure as code:Tag the image with a version-specific tag and don't move that tag to a new version. For example, use :v1234, v1.2.3, r03062016-1-4, rather than :latest (For more information, see Best Practices for Configuration).Check in the script for an image that is heavily parameterized.Switch to configuration files checked into source control for features that are needed, but not expressible via kubectl run flags.You can use the --dry-run=client flag to preview the object that would be sent to your cluster, without really submitting it.kubectl applyYou can use kubectl apply to create or update resources. For more information about using kubectl apply to update resources, see Kubectl Book.


Question: When would you use kubectl Usage Conventions?

Answer: kubectl Usage ConventionsRecommended usage conventions for kubectl.Using kubectl in Reusable ScriptsFor a stable output in a script:Request one of the machine-oriented output forms, such as -o name, -o json, -o yaml, -o go-template, or -o jsonpath.Fully-qualify the version. For example, jobs.v1.batch/myjob. This will ensure that kubectl does not use its default version that can change over time.Don't rely on context, preferences, or other implicit states.SubresourcesYou can use the --subresource argument for kubectl subcommands such as get, patch, edit, apply and replace to fetch and update subresources for all resources that support them. In Kubernetes version 1.34, only the status, scale and resize subresources are supported.For kubectl edit, the scale subresource is not supported. If you use --subresource with kubectl edit and specify scale as the subresource, the command will error out.The API contract against a subresource is identical to a full resource. While updating the status subresource to a new value, keep in mind that the subresource could be potentially reconciled by a controller to a different value.Best Practiceskubectl runFor kubectl run to satisfy infrastructure as code:Tag the image with a version-specific tag and don't move that tag to a new version. For example, use :v1234, v1.2.3, r03062016-1-4, rather than :latest (For more information, see Best Practices for Configuration).Check in the script for an image that is heavily parameterized.Switch to configuration files checked into source control for features that are needed, but not expressible via kubectl run flags.You can use the --dry-run=client flag to preview the object that would be sent to your cluster, without really submitting it.kubectl applyYou can use kubectl apply to create or update resources. For more information about using kubectl apply to update resources, see Kubectl Book.


Question: What are the benefits of kubectl Usage Conventions?

Answer: kubectl Usage ConventionsRecommended usage conventions for kubectl.Using kubectl in Reusable ScriptsFor a stable output in a script:Request one of the machine-oriented output forms, such as -o name, -o json, -o yaml, -o go-template, or -o jsonpath.Fully-qualify the version. For example, jobs.v1.batch/myjob. This will ensure that kubectl does not use its default version that can change over time.Don't rely on context, preferences, or other implicit states.SubresourcesYou can use the --subresource argument for kubectl subcommands such as get, patch, edit, apply and replace to fetch and update subresources for all resources that support them. In Kubernetes version 1.34, only the status, scale and resize subresources are supported.For kubectl edit, the scale subresource is not supported. If you use --subresource with kubectl edit and specify scale as the subresource, the command will error out.The API contract against a subresource is identical to a full resource. While updating the status subresource to a new value, keep in mind that the subresource could be potentially reconciled by a controller to a different value.Best Practiceskubectl runFor kubectl run to satisfy infrastructure as code:Tag the image with a version-specific tag and don't move that tag to a new version. For example, use :v1234, v1.2.3, r03062016-1-4, rather than :latest (For more information, see Best Practices for Configuration).Check in the script for an image that is heavily parameterized.Switch to configuration files checked into source control for features that are needed, but not expressible via kubectl run flags.You can use the --dry-run=client flag to preview the object that would be sent to your cluster, without really submitting it.kubectl applyYou can use kubectl apply to create or update resources. For more information about using kubectl apply to update resources, see Kubectl Book.


Question: What is kubectl Usage Conventions?

Answer: R e c o m m e n d e d   u s a g e   c o n v e n t i o n s   f o r   k u b e c t l .


Question: What is Using kubectl in Reusable Scripts?

Answer: F o r   a   s t a b l e   o u t p u t   i n   a   s c r i p t :   R e q u e s t   o n e   o f   t h e   m a c h i n e - o r i e n t e d   o u t p u t   f o r m s ,   s u c h   a s   - o   n a m e ,   - o   j s o n ,   - o   y a m l ,   - o   g o - t e m p l a t e ,   o r   - o   j s o n p a t h . F u l l y - q u a l i f y   t h e   v e r s i o n .   F o r   e x a m p l e ,   j o b s . v 1 . b a t c h / m y j o b .   T h i s   w i l l   e n s u r e   t h a t   k u b e c t l   d o e s   n o t   u s e   i t s   d e f a u l t   v e r s i o n   t h a t   c a n   c h a n g e   o v e r   t i m e . D o n ' t   r e l y   o n   c o n t e x t ,   p r e f e r e n c e s ,   o r   o t h e r   i m p l i c i t   s t a t e s .


Question: What is Subresources?

Answer: Y o u   c a n   u s e   t h e   - - s u b r e s o u r c e   a r g u m e n t   f o r   k u b e c t l   s u b c o m m a n d s   s u c h   a s   g e t ,   p a t c h ,   e d i t ,   a p p l y   a n d   r e p l a c e   t o   f e t c h   a n d   u p d a t e   s u b r e s o u r c e s   f o r   a l l   r e s o u r c e s   t h a t   s u p p o r t   t h e m .   I n   K u b e r n e t e s   v e r s i o n   1 . 3 4 ,   o n l y   t h e   s t a t u s ,   s c a l e   a n d   r e s i z e   s u b r e s o u r c e s   a r e   s u p p o r t e d . F o r   k u b e c t l   e d i t ,   t h e   s c a l e   s u b r e s o u r c e   i s   n o t   s u p p o r t e d .   I f   y o u   u s e   - - s u b r e s o u r c e   w i t h   k u b e c t l   e d i t   a n d   s p e c i f y   s c a l e   a s   t h e   s u b r e s o u r c e ,   t h e   c o m m a n d   w i l l   e r r o r   o u t . T h e   A P I   c o n t r a c t   a g a i n s t   a   s u b r e s o u r c e   i s   i d e n t i c a l   t o   a   f u l l   r e s o u r c e .   W h i l e   u p d a t i n g   t h e   s t a t u s   s u b r e s o u r c e   t o   a   n e w   v a l u e ,   k e e p   i n   m i n d   t h a t   t h e   s u b r e s o u r c e   c o u l d   b e   p o t e n t i a l l y   r e c o n c i l e d   b y   a   c o n t r o l l e r   t o   a   d i f f e r e n t   v a l u e .   F o r   k u b e c t l   e d i t ,   t h e   s c a l e   s u b r e s o u r c e   i s   n o t   s u p p o r t e d .   I f   y o u   u s e   - - s u b r e s o u r c e   w i t h   k u b e c t l   e d i t   a n d   s p e c i f y   s c a l e   a s   t h e   s u b r e s o u r c e ,   t h e   c o m m a n d   w i l l   e r r o r   o u t .


Question: What is kubectl run?

Answer: F o r   k u b e c t l   r u n   t o   s a t i s f y   i n f r a s t r u c t u r e   a s   c o d e :   T a g   t h e   i m a g e   w i t h   a   v e r s i o n - s p e c i f i c   t a g   a n d   d o n ' t   m o v e   t h a t   t a g   t o   a   n e w   v e r s i o n .   F o r   e x a m p l e ,   u s e   : v 1 2 3 4 ,   v 1 . 2 . 3 ,   r 0 3 0 6 2 0 1 6 - 1 - 4 ,   r a t h e r   t h a n   : l a t e s t   ( F o r   m o r e   i n f o r m a t i o n ,   s e e   B e s t   P r a c t i c e s   f o r   C o n f i g u r a t i o n ) . C h e c k   i n   t h e   s c r i p t   f o r   a n   i m a g e   t h a t   i s   h e a v i l y   p a r a m e t e r i z e d . S w i t c h   t o   c o n f i g u r a t i o n   f i l e s   c h e c k e d   i n t o   s o u r c e   c o n t r o l   f o r   f e a t u r e s   t h a t   a r e   n e e d e d ,   b u t   n o t   e x p r e s s i b l e   v i a   k u b e c t l   r u n   f l a g s .   Y o u   c a n   u s e   t h e   - - d r y - r u n = c l i e n t   f l a g   t o   p r e v i e w   t h e   o b j e c t   t h a t   w o u l d   b e   s e n t   t o   y o u r   c l u s t e r ,   w i t h o u t   r e a l l y   s u b m i t t i n g   i t .


Question: What is kubectl apply?

Answer: Y o u   c a n   u s e   k u b e c t l   a p p l y   t o   c r e a t e   o r   u p d a t e   r e s o u r c e s .   F o r   m o r e   i n f o r m a t i o n   a b o u t   u s i n g   k u b e c t l   a p p l y   t o   u p d a t e   r e s o u r c e s ,   s e e   K u b e c t l   B o o k .


Question: What is Pod Topology Spread Constraints?

Answer: Pod Topology Spread ConstraintsYou can use topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. This can help to achieve high availability as well as efficient resource utilization.You can set cluster-level constraints as a default, or configure topology spread constraints for individual workloads.MotivationImagine that you have a cluster of up to twenty nodes, and you want to run a workload that automatically scales how many replicas it uses. There could be as few as two Pods or as many as fifteen. When there are only two Pods, you'd prefer not to have both of those Pods run on the same node: you would run the risk that a single node failure takes your workload offline.In addition to this basic usage, there are some advanced usage examples that enable your workloads to benefit on high availability and cluster utilization.As you scale up and run more Pods, a different concern becomes important. Imagine that you have three nodes running five Pods each. The nodes have enough capacity to run that many replicas; however, the clients that interact with this workload are split across three different datacenters (or infrastructure zones). Now you have less concern about a single node failure, but you notice that latency is higher than you'd like, and you are paying for network costs associated with sending network traffic between the different zones.You decide that under normal operation you'd prefer to have a similar number of replicas scheduled into each infrastructure zone, and you'd like the cluster to self-heal in the case that there is a problem.Pod topology spread constraints offer you a declarative way to configure that.topologySpreadConstraints fieldThe Pod API includes a field, spec.topologySpreadConstraints. The usage of this field looks like the following:--- apiVersion: v1 kind: Pod metadata: name: example-pod spec: # Configure a topology spread constraint topologySpreadConstraints: - maxSkew: <integer> minDomains: <integer> # optional topologyKey: <string> whenUnsatisfiable: <string> labelSelector: <object> matchLabelKeys: <list> # optional; beta since v1.27 nodeAffinityPolicy: [Honor|Ignore] # optional; beta since v1.26 nodeTaintsPolicy: [Honor|Ignore] # optional; beta since v1.26 ### other Pod fields go here You can read more about this field by running kubectl explain Pod.spec.topologySpreadConstraints or refer to the scheduling section of the API reference for Pod.Spread constraint definitionYou can define one or multiple topologySpreadConstraints entries to instruct the kube-scheduler how to place each incoming Pod in relation to the existing Pods across your cluster. Those fields are:maxSkew describes the degree to which Pods may be unevenly distributed. You must specify this field and the number must be greater than zero. Its semantics differ according to the value of whenUnsatisfiable:if you select whenUnsatisfiab


Question: How does Pod Topology Spread Constraints work?

Answer: Pod Topology Spread ConstraintsYou can use topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. This can help to achieve high availability as well as efficient resource utilization.You can set cluster-level constraints as a default, or configure topology spread constraints for individual workloads.MotivationImagine that you have a cluster of up to twenty nodes, and you want to run a workload that automatically scales how many replicas it uses. There could be as few as two Pods or as many as fifteen. When there are only two Pods, you'd prefer not to have both of those Pods run on the same node: you would run the risk that a single node failure takes your workload offline.In addition to this basic usage, there are some advanced usage examples that enable your workloads to benefit on high availability and cluster utilization.As you scale up and run more Pods, a different concern becomes important. Imagine that you have three nodes running five Pods each. The nodes have enough capacity to run that many replicas; however, the clients that interact with this workload are split across three different datacenters (or infrastructure zones). Now you have less concern about a single node failure, but you notice that latency is higher than you'd like, and you are paying for network costs associated with sending network traffic between the different zones.You decide that under normal operation you'd prefer to have a similar number of replicas scheduled into each infrastructure zone, and you'd like the cluster to self-heal in the case that there is a problem.Pod topology spread constraints offer you a declarative way to configure that.topologySpreadConstraints fieldThe Pod API includes a field, spec.topologySpreadConstraints. The usage of this field looks like the following:--- apiVersion: v1 kind: Pod metadata: name: example-pod spec: # Configure a topology spread constraint topologySpreadConstraints: - maxSkew: <integer> minDomains: <integer> # optional topologyKey: <string> whenUnsatisfiable: <string> labelSelector: <object> matchLabelKeys: <list> # optional; beta since v1.27 nodeAffinityPolicy: [Honor|Ignore] # optional; beta since v1.26 nodeTaintsPolicy: [Honor|Ignore] # optional; beta since v1.26 ### other Pod fields go here You can read more about this field by running kubectl explain Pod.spec.topologySpreadConstraints or refer to the scheduling section of the API reference for Pod.Spread constraint definitionYou can define one or multiple topologySpreadConstraints entries to instruct the kube-scheduler how to place each incoming Pod in relation to the existing Pods across your cluster. Those fields are:maxSkew describes the degree to which Pods may be unevenly distributed. You must specify this field and the number must be greater than zero. Its semantics differ according to the value of whenUnsatisfiable:if you select whenUnsatisfiab


Question: When would you use Pod Topology Spread Constraints?

Answer: Pod Topology Spread ConstraintsYou can use topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. This can help to achieve high availability as well as efficient resource utilization.You can set cluster-level constraints as a default, or configure topology spread constraints for individual workloads.MotivationImagine that you have a cluster of up to twenty nodes, and you want to run a workload that automatically scales how many replicas it uses. There could be as few as two Pods or as many as fifteen. When there are only two Pods, you'd prefer not to have both of those Pods run on the same node: you would run the risk that a single node failure takes your workload offline.In addition to this basic usage, there are some advanced usage examples that enable your workloads to benefit on high availability and cluster utilization.As you scale up and run more Pods, a different concern becomes important. Imagine that you have three nodes running five Pods each. The nodes have enough capacity to run that many replicas; however, the clients that interact with this workload are split across three different datacenters (or infrastructure zones). Now you have less concern about a single node failure, but you notice that latency is higher than you'd like, and you are paying for network costs associated with sending network traffic between the different zones.You decide that under normal operation you'd prefer to have a similar number of replicas scheduled into each infrastructure zone, and you'd like the cluster to self-heal in the case that there is a problem.Pod topology spread constraints offer you a declarative way to configure that.topologySpreadConstraints fieldThe Pod API includes a field, spec.topologySpreadConstraints. The usage of this field looks like the following:--- apiVersion: v1 kind: Pod metadata: name: example-pod spec: # Configure a topology spread constraint topologySpreadConstraints: - maxSkew: <integer> minDomains: <integer> # optional topologyKey: <string> whenUnsatisfiable: <string> labelSelector: <object> matchLabelKeys: <list> # optional; beta since v1.27 nodeAffinityPolicy: [Honor|Ignore] # optional; beta since v1.26 nodeTaintsPolicy: [Honor|Ignore] # optional; beta since v1.26 ### other Pod fields go here You can read more about this field by running kubectl explain Pod.spec.topologySpreadConstraints or refer to the scheduling section of the API reference for Pod.Spread constraint definitionYou can define one or multiple topologySpreadConstraints entries to instruct the kube-scheduler how to place each incoming Pod in relation to the existing Pods across your cluster. Those fields are:maxSkew describes the degree to which Pods may be unevenly distributed. You must specify this field and the number must be greater than zero. Its semantics differ according to the value of whenUnsatisfiable:if you select whenUnsatisfiab


Question: What are the benefits of Pod Topology Spread Constraints?

Answer: Pod Topology Spread ConstraintsYou can use topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. This can help to achieve high availability as well as efficient resource utilization.You can set cluster-level constraints as a default, or configure topology spread constraints for individual workloads.MotivationImagine that you have a cluster of up to twenty nodes, and you want to run a workload that automatically scales how many replicas it uses. There could be as few as two Pods or as many as fifteen. When there are only two Pods, you'd prefer not to have both of those Pods run on the same node: you would run the risk that a single node failure takes your workload offline.In addition to this basic usage, there are some advanced usage examples that enable your workloads to benefit on high availability and cluster utilization.As you scale up and run more Pods, a different concern becomes important. Imagine that you have three nodes running five Pods each. The nodes have enough capacity to run that many replicas; however, the clients that interact with this workload are split across three different datacenters (or infrastructure zones). Now you have less concern about a single node failure, but you notice that latency is higher than you'd like, and you are paying for network costs associated with sending network traffic between the different zones.You decide that under normal operation you'd prefer to have a similar number of replicas scheduled into each infrastructure zone, and you'd like the cluster to self-heal in the case that there is a problem.Pod topology spread constraints offer you a declarative way to configure that.topologySpreadConstraints fieldThe Pod API includes a field, spec.topologySpreadConstraints. The usage of this field looks like the following:--- apiVersion: v1 kind: Pod metadata: name: example-pod spec: # Configure a topology spread constraint topologySpreadConstraints: - maxSkew: <integer> minDomains: <integer> # optional topologyKey: <string> whenUnsatisfiable: <string> labelSelector: <object> matchLabelKeys: <list> # optional; beta since v1.27 nodeAffinityPolicy: [Honor|Ignore] # optional; beta since v1.26 nodeTaintsPolicy: [Honor|Ignore] # optional; beta since v1.26 ### other Pod fields go here You can read more about this field by running kubectl explain Pod.spec.topologySpreadConstraints or refer to the scheduling section of the API reference for Pod.Spread constraint definitionYou can define one or multiple topologySpreadConstraints entries to instruct the kube-scheduler how to place each incoming Pod in relation to the existing Pods across your cluster. Those fields are:maxSkew describes the degree to which Pods may be unevenly distributed. You must specify this field and the number must be greater than zero. Its semantics differ according to the value of whenUnsatisfiable:if you select whenUnsatisfiab


Question: What is Pod Topology Spread Constraints?

Answer: Y o u   c a n   u s e   t o p o l o g y   s p r e a d   c o n s t r a i n t s   t o   c o n t r o l   h o w   P o d s   a r e   s p r e a d   a c r o s s   y o u r   c l u s t e r   a m o n g   f a i l u r e - d o m a i n s   s u c h   a s   r e g i o n s ,   z o n e s ,   n o d e s ,   a n d   o t h e r   u s e r - d e f i n e d   t o p o l o g y   d o m a i n s .   T h i s   c a n   h e l p   t o   a c h i e v e   h i g h   a v a i l a b i l i t y   a s   w e l l   a s   e f f i c i e n t   r e s o u r c e   u t i l i z a t i o n .   Y o u   c a n   s e t   c l u s t e r - l e v e l   c o n s t r a i n t s   a s   a   d e f a u l t ,   o r   c o n f i g u r e   t o p o l o g y   s p r e a d   c o n s t r a i n t s   f o r   i n d i v i d u a l   w o r k l o a d s .


Question: What is Motivation?

Answer: I m a g i n e   t h a t   y o u   h a v e   a   c l u s t e r   o f   u p   t o   t w e n t y   n o d e s ,   a n d   y o u   w a n t   t o   r u n   a   w o r k l o a d   t h a t   a u t o m a t i c a l l y   s c a l e s   h o w   m a n y   r e p l i c a s   i t   u s e s .   T h e r e   c o u l d   b e   a s   f e w   a s   t w o   P o d s   o r   a s   m a n y   a s   f i f t e e n .   W h e n   t h e r e   a r e   o n l y   t w o   P o d s ,   y o u ' d   p r e f e r   n o t   t o   h a v e   b o t h   o f   t h o s e   P o d s   r u n   o n   t h e   s a m e   n o d e :   y o u   w o u l d   r u n   t h e   r i s k   t h a t   a   s i n g l e   n o d e   f a i l u r e   t a k e s   y o u r   w o r k l o a d   o f f l i n e .   I n   a d d i t i o n   t o   t h i s   b a s i c   u s a g e ,   t h e r e   a r e   s o m e   a d v a n c e d   u s a g e   e x a m p l e s   t h a t   e n a b l e   y o u r   w o r k l o a d s   t o   b e n e f i t   o n   h i g h   a v a i l a b i l i t y   a n d   c l u s t e r   u t i l i z a t i o n .   A s   y o u   s c a l e   u p   a n d   r u n   m o r e   P o d s ,   a   d i f f e r e n t   c o n c e r n   b e c o m e s   i m p o r t a n t .   I m a g i n e   t h a t   y o u   h a v e   t h r e e   n o d e s   r u n n i n g   f i v e   P o d s   e a c h .   T h e   n o d e s   h a v e   e n o u g h   c a p a c i t y   t o   r u n   t h a t   m a n y   r e p l i c a s ;   h o w e v e r ,   t h e   c l i e n t s   t h a t   i n t e r a c t   w i t h   t h i s   w o r k l o a d   a r e   s p l i t   a c r o s s   t h r e e   d i f f e r e n t   d a t a c e n t e r s   ( o r   i n f r a s t r u c t u r e   z o n e s ) .   N o w   y o u   h a v e   l e s s   c o n c e r n   a b o u t   a   s i n g l e   n o d e   f a i l u r e ,   b u t   y o u   n o t i c e   t h a t   l a t e n c y   i s   h i g h e r   t h a n   y o u ' d   l i k e ,   a n d   y o u   a r e   p a y i n g   f o r   n e t w o r k   c o s t s   a s s o c i a t e d


Question: What is topologySpreadConstraints field?

Answer: T h e   P o d   A P I   i n c l u d e s   a   f i e l d ,   s p e c . t o p o l o g y S p r e a d C o n s t r a i n t s .   T h e   u s a g e   o f   t h i s   f i e l d   l o o k s   l i k e   t h e   f o l l o w i n g :   - - -   a p i V e r s i o n :   v 1   k i n d :   P o d   m e t a d a t a :   n a m e :   e x a m p l e - p o d   s p e c :   #   C o n f i g u r e   a   t o p o l o g y   s p r e a d   c o n s t r a i n t   t o p o l o g y S p r e a d C o n s t r a i n t s :   -   m a x S k e w :   < i n t e g e r >   m i n D o m a i n s :   < i n t e g e r >   #   o p t i o n a l   t o p o l o g y K e y :   < s t r i n g >   w h e n U n s a t i s f i a b l e :   < s t r i n g >   l a b e l S e l e c t o r :   < o b j e c t >   m a t c h L a b e l K e y s :   < l i s t >   #   o p t i o n a l ;   b e t a   s i n c e   v 1 . 2 7   n o d e A f f i n i t y P o l i c y :   [ H o n o r | I g n o r e ]   #   o p t i o n a l ;   b e t a   s i n c e   v 1 . 2 6   n o d e T a i n t s P o l i c y :   [ H o n o r | I g n o r e ]   #   o p t i o n a l ;   b e t a   s i n c e   v 1 . 2 6   # # #   o t h e r   P o d   f i e l d s   g o   h e r e   Y o u   c a n   r e a d   m o r e   a b o u t   t h i s   f i e l d   b y   r u n n i n g   k u b e c t l   e x p l a i n   P o d . s p e c . t o p o l o g y S p r e a d C o n s t r a i n t s   o r   r e f e r   t o   t h e   s c h e d u l i n g   s e c t i o n   o f   t h e   A P I   r e f e r e n c e   f o r   P o d .


Question: What is Spread constraint definition?

Answer: Y o u   c a n   d e f i n e   o n e   o r   m u l t i p l e   t o p o l o g y S p r e a d C o n s t r a i n t s   e n t r i e s   t o   i n s t r u c t   t h e   k u b e - s c h e d u l e r   h o w   t o   p l a c e   e a c h   i n c o m i n g   P o d   i n   r e l a t i o n   t o   t h e   e x i s t i n g   P o d s   a c r o s s   y o u r   c l u s t e r .   T h o s e   f i e l d s   a r e :   m a x S k e w   d e s c r i b e s   t h e   d e g r e e   t o   w h i c h   P o d s   m a y   b e   u n e v e n l y   d i s t r i b u t e d .   Y o u   m u s t   s p e c i f y   t h i s   f i e l d   a n d   t h e   n u m b e r   m u s t   b e   g r e a t e r   t h a n   z e r o .   I t s   s e m a n t i c s   d i f f e r   a c c o r d i n g   t o   t h e   v a l u e   o f   w h e n U n s a t i s f i a b l e : i f   y o u   s e l e c t   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e ,   t h e n   m a x S k e w   d e f i n e s   t h e   m a x i m u m   p e r m i t t e d   d i f f e r e n c e   b e t w e e n   t h e   n u m b e r   o f   m a t c h i n g   p o d s   i n   t h e   t a r g e t   t o p o l o g y   a n d   t h e   g l o b a l   m i n i m u m   ( t h e   m i n i m u m   n u m b e r   o f   m a t c h i n g   p o d s   i n   a n   e l i g i b l e   d o m a i n   o r   z e r o   i f   t h e   n u m b e r   o f   e l i g i b l e   d o m a i n s   i s   l e s s   t h a n   M i n D o m a i n s ) .   F o r   e x a m p l e ,   i f   y o u   h a v e   3   z o n e s   w i t h   2 ,   2   a n d   1   m a t c h i n g   p o d s   r e s p e c t i v e l y ,   M a x S k e w   i s   s e t   t o   1   t h e n   t h e   g l o b a l   m i n i m u m   i s   1 . i f   y o u   s e l e c t   w h e n U n s a t i s f i a b l e :   S c h e d u l e A n y w a y ,   t h e   s c h e d u l e r   g i v e s   h i g h e r   p r e c e d e n c e   t o   t o p o l o g i e s   t h a t   w o u l d   h e l p   r e d u c e   t h e   s k e w . m i n D o m a i n s   i n d i c a t e s   a   m


Question: What is Note:?

Answer: T h e   v a l u e   o f   m i n D o m a i n s   m u s t   b e   g r e a t e r   t h a n   0 ,   w h e n   s p e c i f i e d .   Y o u   c a n   o n l y   s p e c i f y   m i n D o m a i n s   i n   c o n j u n c t i o n   w i t h   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e . W h e n   t h e   n u m b e r   o f   e l i g i b l e   d o m a i n s   w i t h   m a t c h   t o p o l o g y   k e y s   i s   l e s s   t h a n   m i n D o m a i n s ,   P o d   t o p o l o g y   s p r e a d   t r e a t s   g l o b a l   m i n i m u m   a s   0 ,   a n d   t h e n   t h e   c a l c u l a t i o n   o f   s k e w   i s   p e r f o r m e d .   T h e   g l o b a l   m i n i m u m   i s   t h e   m i n i m u m   n u m b e r   o f   m a t c h i n g   P o d s   i n   a n   e l i g i b l e   d o m a i n ,   o r   z e r o   i f   t h e   n u m b e r   o f   e l i g i b l e   d o m a i n s   i s   l e s s   t h a n   m i n D o m a i n s . W h e n   t h e   n u m b e r   o f   e l i g i b l e   d o m a i n s   w i t h   m a t c h i n g   t o p o l o g y   k e y s   e q u a l s   o r   i s   g r e a t e r   t h a n   m i n D o m a i n s ,   t h i s   v a l u e   h a s   n o   e f f e c t   o n   s c h e d u l i n g . I f   y o u   d o   n o t   s p e c i f y   m i n D o m a i n s ,   t h e   c o n s t r a i n t   b e h a v e s   a s   i f   m i n D o m a i n s   i s   1 .   t o p o l o g y K e y   i s   t h e   k e y   o f   n o d e   l a b e l s .   N o d e s   t h a t   h a v e   a   l a b e l   w i t h   t h i s   k e y   a n d   i d e n t i c a l   v a l u e s   a r e   c o n s i d e r e d   t o   b e   i n   t h e   s a m e   t o p o l o g y .   W e   c a l l   e a c h   i n s t a n c e   o f   a   t o p o l o g y   ( i n   o t h e r   w o r d s ,   a   < k e y ,   v a l u e >   p a i r )   a   d o m a i n .   T h e   s c h e d u l e r   w i l l   t r y   t o   p u t   a   b a l a n c e d   n u m b e r   o f   p o d s   i n t o   e a c h   d o m a i n .   A l s


Question: What is Caution:?

Answer: W i t h   m a t c h L a b e l K e y s ,   y o u   d o n ' t   n e e d   t o   u p d a t e   t h e   p o d . s p e c   b e t w e e n   d i f f e r e n t   r e v i s i o n s .   T h e   c o n t r o l l e r / o p e r a t o r   j u s t   n e e d s   t o   s e t   d i f f e r e n t   v a l u e s   t o   t h e   s a m e   l a b e l   k e y   f o r   d i f f e r e n t   r e v i s i o n s .   F o r   e x a m p l e ,   i f   y o u   a r e   c o n f i g u r i n g   a   D e p l o y m e n t ,   y o u   c a n   u s e   t h e   l a b e l   k e y e d   w i t h   p o d - t e m p l a t e - h a s h ,   w h i c h   i s   a d d e d   a u t o m a t i c a l l y   b y   t h e   D e p l o y m e n t   c o n t r o l l e r ,   t o   d i s t i n g u i s h   b e t w e e n   d i f f e r e n t   r e v i s i o n s   i n   a   s i n g l e   D e p l o y m e n t .   t o p o l o g y S p r e a d C o n s t r a i n t s :   -   m a x S k e w :   1   t o p o l o g y K e y :   k u b e r n e t e s . i o / h o s t n a m e   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   l a b e l S e l e c t o r :   m a t c h L a b e l s :   a p p :   f o o   m a t c h L a b e l K e y s :   -   p o d - t e m p l a t e - h a s h


Question: What is Note:?

Answer: T h e   m a t c h L a b e l K e y s   f i e l d   i s   a   b e t a - l e v e l   f i e l d   a n d   e n a b l e d   b y   d e f a u l t   i n   1 . 2 7 .   Y o u   c a n   d i s a b l e   i t   b y   d i s a b l i n g   t h e   M a t c h L a b e l K e y s I n P o d T o p o l o g y S p r e a d   f e a t u r e   g a t e .   B e f o r e   v 1 . 3 4 ,   m a t c h L a b e l K e y s   w a s   h a n d l e d   i m p l i c i t l y .   S i n c e   v 1 . 3 4 ,   k e y - v a l u e   l a b e l s   c o r r e s p o n d i n g   t o   m a t c h L a b e l K e y s   a r e   e x p l i c i t l y   m e r g e d   i n t o   l a b e l S e l e c t o r .   Y o u   c a n   d i s a b l e   i t   a n d   r e v e r t   t o   t h e   p r e v i o u s   b e h a v i o r   b y   d i s a b l i n g   t h e   M a t c h L a b e l K e y s I n P o d T o p o l o g y S p r e a d S e l e c t o r M e r g e   f e a t u r e   g a t e   o f   k u b e - a p i s e r v e r .   n o d e A f f i n i t y P o l i c y   i n d i c a t e s   h o w   w e   w i l l   t r e a t   P o d ' s   n o d e A f f i n i t y / n o d e S e l e c t o r   w h e n   c a l c u l a t i n g   p o d   t o p o l o g y   s p r e a d   s k e w .   O p t i o n s   a r e :   H o n o r :   o n l y   n o d e s   m a t c h i n g   n o d e A f f i n i t y / n o d e S e l e c t o r   a r e   i n c l u d e d   i n   t h e   c a l c u l a t i o n s . I g n o r e :   n o d e A f f i n i t y / n o d e S e l e c t o r   a r e   i g n o r e d .   A l l   n o d e s   a r e   i n c l u d e d   i n   t h e   c a l c u l a t i o n s .   I f   t h i s   v a l u e   i s   n u l l ,   t h e   b e h a v i o r   i s   e q u i v a l e n t   t o   t h e   H o n o r   p o l i c y .


Question: What is Note:?

Answer: n o d e T a i n t s P o l i c y   i n d i c a t e s   h o w   w e   w i l l   t r e a t   n o d e   t a i n t s   w h e n   c a l c u l a t i n g   p o d   t o p o l o g y   s p r e a d   s k e w .   O p t i o n s   a r e :   H o n o r :   n o d e s   w i t h o u t   t a i n t s ,   a l o n g   w i t h   t a i n t e d   n o d e s   f o r   w h i c h   t h e   i n c o m i n g   p o d   h a s   a   t o l e r a t i o n ,   a r e   i n c l u d e d . I g n o r e :   n o d e   t a i n t s   a r e   i g n o r e d .   A l l   n o d e s   a r e   i n c l u d e d .   I f   t h i s   v a l u e   i s   n u l l ,   t h e   b e h a v i o r   i s   e q u i v a l e n t   t o   t h e   I g n o r e   p o l i c y .


Question: What is Note:?

Answer: W h e n   a   P o d   d e f i n e s   m o r e   t h a n   o n e   t o p o l o g y S p r e a d C o n s t r a i n t ,   t h o s e   c o n s t r a i n t s   a r e   c o m b i n e d   u s i n g   a   l o g i c a l   A N D   o p e r a t i o n :   t h e   k u b e - s c h e d u l e r   l o o k s   f o r   a   n o d e   f o r   t h e   i n c o m i n g   P o d   t h a t   s a t i s f i e s   a l l   t h e   c o n f i g u r e d   c o n s t r a i n t s .


Question: What is Node labels?

Answer: T o p o l o g y   s p r e a d   c o n s t r a i n t s   r e l y   o n   n o d e   l a b e l s   t o   i d e n t i f y   t h e   t o p o l o g y   d o m a i n ( s )   t h a t   e a c h   n o d e   i s   i n .   F o r   e x a m p l e ,   a   n o d e   m i g h t   h a v e   l a b e l s :   r e g i o n :   u s - e a s t - 1   z o n e :   u s - e a s t - 1 a


Question: What is Note:?

Answer: F o r   b r e v i t y ,   t h i s   e x a m p l e   d o e s n ' t   u s e   t h e   w e l l - k n o w n   l a b e l   k e y s   t o p o l o g y . k u b e r n e t e s . i o / z o n e   a n d   t o p o l o g y . k u b e r n e t e s . i o / r e g i o n .   H o w e v e r ,   t h o s e   r e g i s t e r e d   l a b e l   k e y s   a r e   n o n e t h e l e s s   r e c o m m e n d e d   r a t h e r   t h a n   t h e   p r i v a t e   ( u n q u a l i f i e d )   l a b e l   k e y s   r e g i o n   a n d   z o n e   t h a t   a r e   u s e d   h e r e .   Y o u   c a n ' t   m a k e   a   r e l i a b l e   a s s u m p t i o n   a b o u t   t h e   m e a n i n g   o f   a   p r i v a t e   l a b e l   k e y   b e t w e e n   d i f f e r e n t   c o n t e x t s .   S u p p o s e   y o u   h a v e   a   4 - n o d e   c l u s t e r   w i t h   t h e   f o l l o w i n g   l a b e l s :   N A M E   S T A T U S   R O L E S   A G E   V E R S I O N   L A B E L S   n o d e 1   R e a d y   < n o n e >   4 m 2 6 s   v 1 . 1 6 . 0   n o d e = n o d e 1 , z o n e = z o n e A   n o d e 2   R e a d y   < n o n e >   3 m 5 8 s   v 1 . 1 6 . 0   n o d e = n o d e 2 , z o n e = z o n e A   n o d e 3   R e a d y   < n o n e >   3 m 1 7 s   v 1 . 1 6 . 0   n o d e = n o d e 3 , z o n e = z o n e B   n o d e 4   R e a d y   < n o n e >   2 m 4 3 s   v 1 . 1 6 . 0   n o d e = n o d e 4 , z o n e = z o n e B   T h e n   t h e   c l u s t e r   i s   l o g i c a l l y   v i e w e d   a s   b e l o w :


Question: What is Consistency?

Answer: Y o u   s h o u l d   s e t   t h e   s a m e   P o d   t o p o l o g y   s p r e a d   c o n s t r a i n t s   o n   a l l   p o d s   i n   a   g r o u p .   U s u a l l y ,   i f   y o u   a r e   u s i n g   a   w o r k l o a d   c o n t r o l l e r   s u c h   a s   a   D e p l o y m e n t ,   t h e   p o d   t e m p l a t e   t a k e s   c a r e   o f   t h i s   f o r   y o u .   I f   y o u   m i x   d i f f e r e n t   s p r e a d   c o n s t r a i n t s   t h e n   K u b e r n e t e s   f o l l o w s   t h e   A P I   d e f i n i t i o n   o f   t h e   f i e l d ;   h o w e v e r ,   t h e   b e h a v i o r   i s   m o r e   l i k e l y   t o   b e c o m e   c o n f u s i n g   a n d   t r o u b l e s h o o t i n g   i s   l e s s   s t r a i g h t f o r w a r d .   Y o u   n e e d   a   m e c h a n i s m   t o   e n s u r e   t h a t   a l l   t h e   n o d e s   i n   a   t o p o l o g y   d o m a i n   ( s u c h   a s   a   c l o u d   p r o v i d e r   r e g i o n )   a r e   l a b e l e d   c o n s i s t e n t l y .   T o   a v o i d   y o u   n e e d i n g   t o   m a n u a l l y   l a b e l   n o d e s ,   m o s t   c l u s t e r s   a u t o m a t i c a l l y   p o p u l a t e   w e l l - k n o w n   l a b e l s   s u c h   a s   k u b e r n e t e s . i o / h o s t n a m e .   C h e c k   w h e t h e r   y o u r   c l u s t e r   s u p p o r t s   t h i s .


Question: What is Example: one topology spread constraint?

Answer: S u p p o s e   y o u   h a v e   a   4 - n o d e   c l u s t e r   w h e r e   3   P o d s   l a b e l e d   f o o :   b a r   a r e   l o c a t e d   i n   n o d e 1 ,   n o d e 2   a n d   n o d e 3   r e s p e c t i v e l y :   I f   y o u   w a n t   a n   i n c o m i n g   P o d   t o   b e   e v e n l y   s p r e a d   w i t h   e x i s t i n g   P o d s   a c r o s s   z o n e s ,   y o u   c a n   u s e   a   m a n i f e s t   s i m i l a r   t o :   k i n d :   P o d   a p i V e r s i o n :   v 1   m e t a d a t a :   n a m e :   m y p o d   l a b e l s :   f o o :   b a r   s p e c :   t o p o l o g y S p r e a d C o n s t r a i n t s :   -   m a x S k e w :   1   t o p o l o g y K e y :   z o n e   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   l a b e l S e l e c t o r :   m a t c h L a b e l s :   f o o :   b a r   c o n t a i n e r s :   -   n a m e :   p a u s e   i m a g e :   r e g i s t r y . k 8 s . i o / p a u s e : 3 . 1   F r o m   t h a t   m a n i f e s t ,   t o p o l o g y K e y :   z o n e   i m p l i e s   t h e   e v e n   d i s t r i b u t i o n   w i l l   o n l y   b e   a p p l i e d   t o   n o d e s   t h a t   a r e   l a b e l e d   z o n e :   < a n y   v a l u e >   ( n o d e s   t h a t   d o n ' t   h a v e   a   z o n e   l a b e l   a r e   s k i p p e d ) .   T h e   f i e l d   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   t e l l s   t h e   s c h e d u l e r   t o   l e t   t h e   i n c o m i n g   P o d   s t a y   p e n d i n g   i f   t h e   s c h e d u l e r   c a n ' t   f i n d   a   w a y   t o   s a t i s f y   t h e   c o n s t r a i n t .   I f   t h e   s c h e d u l e r   p l a c e d   t h i s   i n c o m i n g   P o d   i n t o   z o n e   A ,   t h e   d i s t r i b u t i o n   o f   P o d s   w o u l d   b e c o m e   [ 3 ,   1 ] .   T h a t   m e a n s   t h e   a c t u a l   s k e w   i s   t h e n   2   ( c a l c u l a t e d   a s   3   -   1 ) ,   w h i c h


Question: What is Example: multiple topology spread constraints?

Answer: T h i s   b u i l d s   u p o n   t h e   p r e v i o u s   e x a m p l e .   S u p p o s e   y o u   h a v e   a   4 - n o d e   c l u s t e r   w h e r e   3   e x i s t i n g   P o d s   l a b e l e d   f o o :   b a r   a r e   l o c a t e d   o n   n o d e 1 ,   n o d e 2   a n d   n o d e 3   r e s p e c t i v e l y :   Y o u   c a n   c o m b i n e   t w o   t o p o l o g y   s p r e a d   c o n s t r a i n t s   t o   c o n t r o l   t h e   s p r e a d   o f   P o d s   b o t h   b y   n o d e   a n d   b y   z o n e :   k i n d :   P o d   a p i V e r s i o n :   v 1   m e t a d a t a :   n a m e :   m y p o d   l a b e l s :   f o o :   b a r   s p e c :   t o p o l o g y S p r e a d C o n s t r a i n t s :   -   m a x S k e w :   1   t o p o l o g y K e y :   z o n e   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   l a b e l S e l e c t o r :   m a t c h L a b e l s :   f o o :   b a r   -   m a x S k e w :   1   t o p o l o g y K e y :   n o d e   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   l a b e l S e l e c t o r :   m a t c h L a b e l s :   f o o :   b a r   c o n t a i n e r s :   -   n a m e :   p a u s e   i m a g e :   r e g i s t r y . k 8 s . i o / p a u s e : 3 . 1   I n   t h i s   c a s e ,   t o   m a t c h   t h e   f i r s t   c o n s t r a i n t ,   t h e   i n c o m i n g   P o d   c a n   o n l y   b e   p l a c e d   o n t o   n o d e s   i n   z o n e   B ;   w h i l e   i n   t e r m s   o f   t h e   s e c o n d   c o n s t r a i n t ,   t h e   i n c o m i n g   P o d   c a n   o n l y   b e   s c h e d u l e d   t o   t h e   n o d e   n o d e 4 .   T h e   s c h e d u l e r   o n l y   c o n s i d e r s   o p t i o n s   t h a t   s a t i s f y   a l l   d e f i n e d   c o n s t r a i n t s ,   s o   t h e   o n l y   v a l i d   p l a c e m e n t   i s   o n t o   n o d e   n o d e 4 .


Question: What is Example: conflicting topology spread constraints?

Answer: M u l t i p l e   c o n s t r a i n t s   c a n   l e a d   t o   c o n f l i c t s .   S u p p o s e   y o u   h a v e   a   3 - n o d e   c l u s t e r   a c r o s s   2   z o n e s :   I f   y o u   w e r e   t o   a p p l y   t w o - c o n s t r a i n t s . y a m l   ( t h e   m a n i f e s t   f r o m   t h e   p r e v i o u s   e x a m p l e )   t o   t h i s   c l u s t e r ,   y o u   w o u l d   s e e   t h a t   t h e   P o d   m y p o d   s t a y s   i n   t h e   P e n d i n g   s t a t e .   T h i s   h a p p e n s   b e c a u s e :   t o   s a t i s f y   t h e   f i r s t   c o n s t r a i n t ,   t h e   P o d   m y p o d   c a n   o n l y   b e   p l a c e d   i n t o   z o n e   B ;   w h i l e   i n   t e r m s   o f   t h e   s e c o n d   c o n s t r a i n t ,   t h e   P o d   m y p o d   c a n   o n l y   s c h e d u l e   t o   n o d e   n o d e 2 .   T h e   i n t e r s e c t i o n   o f   t h e   t w o   c o n s t r a i n t s   r e t u r n s   a n   e m p t y   s e t ,   a n d   t h e   s c h e d u l e r   c a n n o t   p l a c e   t h e   P o d .   T o   o v e r c o m e   t h i s   s i t u a t i o n ,   y o u   c a n   e i t h e r   i n c r e a s e   t h e   v a l u e   o f   m a x S k e w   o r   m o d i f y   o n e   o f   t h e   c o n s t r a i n t s   t o   u s e   w h e n U n s a t i s f i a b l e :   S c h e d u l e A n y w a y .   D e p e n d i n g   o n   c i r c u m s t a n c e s ,   y o u   m i g h t   a l s o   d e c i d e   t o   d e l e t e   a n   e x i s t i n g   P o d   m a n u a l l y   -   f o r   e x a m p l e ,   i f   y o u   a r e   t r o u b l e s h o o t i n g   w h y   a   b u g - f i x   r o l l o u t   i s   n o t   m a k i n g   p r o g r e s s .


Question: What is Interaction with node affinity and node selectors?

Answer: T h e   s c h e d u l e r   w i l l   s k i p   t h e   n o n - m a t c h i n g   n o d e s   f r o m   t h e   s k e w   c a l c u l a t i o n s   i f   t h e   i n c o m i n g   P o d   h a s   s p e c . n o d e S e l e c t o r   o r   s p e c . a f f i n i t y . n o d e A f f i n i t y   d e f i n e d .


Question: What is Example: topology spread constraints with node affinity?

Answer: S u p p o s e   y o u   h a v e   a   5 - n o d e   c l u s t e r   r a n g i n g   a c r o s s   z o n e s   A   t o   C :   a n d   y o u   k n o w   t h a t   z o n e   C   m u s t   b e   e x c l u d e d .   I n   t h i s   c a s e ,   y o u   c a n   c o m p o s e   a   m a n i f e s t   a s   b e l o w ,   s o   t h a t   P o d   m y p o d   w i l l   b e   p l a c e d   i n t o   z o n e   B   i n s t e a d   o f   z o n e   C .   S i m i l a r l y ,   K u b e r n e t e s   a l s o   r e s p e c t s   s p e c . n o d e S e l e c t o r .   k i n d :   P o d   a p i V e r s i o n :   v 1   m e t a d a t a :   n a m e :   m y p o d   l a b e l s :   f o o :   b a r   s p e c :   t o p o l o g y S p r e a d C o n s t r a i n t s :   -   m a x S k e w :   1   t o p o l o g y K e y :   z o n e   w h e n U n s a t i s f i a b l e :   D o N o t S c h e d u l e   l a b e l S e l e c t o r :   m a t c h L a b e l s :   f o o :   b a r   a f f i n i t y :   n o d e A f f i n i t y :   r e q u i r e d D u r i n g S c h e d u l i n g I g n o r e d D u r i n g E x e c u t i o n :   n o d e S e l e c t o r T e r m s :   -   m a t c h E x p r e s s i o n s :   -   k e y :   z o n e   o p e r a t o r :   N o t I n   v a l u e s :   -   z o n e C   c o n t a i n e r s :   -   n a m e :   p a u s e   i m a g e :   r e g i s t r y . k 8 s . i o / p a u s e : 3 . 1


Question: What is Implicit conventions?

Answer: T h e r e   a r e   s o m e   i m p l i c i t   c o n v e n t i o n s   w o r t h   n o t i n g   h e r e :   O n l y   t h e   P o d s   h o l d i n g   t h e   s a m e   n a m e s p a c e   a s   t h e   i n c o m i n g   P o d   c a n   b e   m a t c h i n g   c a n d i d a t e s . T h e   s c h e d u l e r   o n l y   c o n s i d e r s   n o d e s   t h a t   h a v e   a l l   t o p o l o g y S p r e a d C o n s t r a i n t s [ * ] . t o p o l o g y K e y   p r e s e n t   a t   t h e   s a m e   t i m e .   N o d e s   m i s s i n g   a n y   o f   t h e s e   t o p o l o g y K e y s   a r e   b y p a s s e d .   T h i s   i m p l i e s   t h a t : a n y   P o d s   l o c a t e d   o n   t h o s e   b y p a s s e d   n o d e s   d o   n o t   i m p a c t   m a x S k e w   c a l c u l a t i o n   -   i n   t h e   a b o v e   e x a m p l e ,   s u p p o s e   t h e   n o d e   n o d e 1   d o e s   n o t   h a v e   a   l a b e l   " z o n e " ,   t h e n   t h e   2   P o d s   w i l l   b e   d i s r e g a r d e d ,   h e n c e   t h e   i n c o m i n g   P o d   w i l l   b e   s c h e d u l e d   i n t o   z o n e   A . t h e   i n c o m i n g   P o d   h a s   n o   c h a n c e s   t o   b e   s c h e d u l e d   o n t o   t h i s   k i n d   o f   n o d e s   -   i n   t h e   a b o v e   e x a m p l e ,   s u p p o s e   a   n o d e   n o d e 5   h a s   t h e   m i s t y p e d   l a b e l   z o n e - t y p o :   z o n e C   ( a n d   n o   z o n e   l a b e l   s e t ) .   A f t e r   n o d e   n o d e 5   j o i n s   t h e   c l u s t e r ,   i t   w i l l   b e   b y p a s s e d   a n d   P o d s   f o r   t h i s   w o r k l o a d   a r e n ' t   s c h e d u l e d   t h e r e . B e   a w a r e   o f   w h a t   w i l l   h a p p e n   i f   t h e   i n c o m i n g   P o d ' s   t o p o l o g y S p r e a d C o n s t r a i n t s [ * ] . l a b e l S e l e c t o r   d o e s n ' t   m a t c h   i t s   o w n   l a b e l s .   I n   t h e   a b o v e   e x


Question: What is Cluster-level default constraints?

Answer: I t   i s   p o s s i b l e   t o   s e t   d e f a u l t   t o p o l o g y   s p r e a d   c o n s t r a i n t s   f o r   a   c l u s t e r .   D e f a u l t   t o p o l o g y   s p r e a d   c o n s t r a i n t s   a r e   a p p l i e d   t o   a   P o d   i f ,   a n d   o n l y   i f :   I t   d o e s n ' t   d e f i n e   a n y   c o n s t r a i n t s   i n   i t s   . s p e c . t o p o l o g y S p r e a d C o n s t r a i n t s . I t   b e l o n g s   t o   a   S e r v i c e ,   R e p l i c a S e t ,   S t a t e f u l S e t   o r   R e p l i c a t i o n C o n t r o l l e r .   D e f a u l t   c o n s t r a i n t s   c a n   b e   s e t   a s   p a r t   o f   t h e   P o d T o p o l o g y S p r e a d   p l u g i n   a r g u m e n t s   i n   a   s c h e d u l i n g   p r o f i l e .   T h e   c o n s t r a i n t s   a r e   s p e c i f i e d   w i t h   t h e   s a m e   A P I   a b o v e ,   e x c e p t   t h a t   l a b e l S e l e c t o r   m u s t   b e   e m p t y .   T h e   s e l e c t o r s   a r e   c a l c u l a t e d   f r o m   t h e   S e r v i c e s ,   R e p l i c a S e t s ,   S t a t e f u l S e t s   o r   R e p l i c a t i o n C o n t r o l l e r s   t h a t   t h e   P o d   b e l o n g s   t o .   A n   e x a m p l e   c o n f i g u r a t i o n   m i g h t   l o o k   l i k e   f o l l o w s :   a p i V e r s i o n :   k u b e s c h e d u l e r . c o n f i g . k 8 s . i o / v 1   k i n d :   K u b e S c h e d u l e r C o n f i g u r a t i o n   p r o f i l e s :   -   s c h e d u l e r N a m e :   d e f a u l t - s c h e d u l e r   p l u g i n C o n f i g :   -   n a m e :   P o d T o p o l o g y S p r e a d   a r g s :   d e f a u l t C o n s t r a i n t s :   -   m a x S k e w :   1   t o p o l o g y K e y :   t o p o l o g y . k u b e r n e t e s . i o / z o n e   w h e n U n s a t i s f i a b l e :   S c h e d u l e A n y w a y   d e f a u l t i n g T y p e :   L i s t


Question: What is Built-in default constraints?

Answer: I f   y o u   d o n ' t   c o n f i g u r e   a n y   c l u s t e r - l e v e l   d e f a u l t   c o n s t r a i n t s   f o r   p o d   t o p o l o g y   s p r e a d i n g ,   t h e n   k u b e - s c h e d u l e r   a c t s   a s   i f   y o u   s p e c i f i e d   t h e   f o l l o w i n g   d e f a u l t   t o p o l o g y   c o n s t r a i n t s :   d e f a u l t C o n s t r a i n t s :   -   m a x S k e w :   3   t o p o l o g y K e y :   " k u b e r n e t e s . i o / h o s t n a m e "   w h e n U n s a t i s f i a b l e :   S c h e d u l e A n y w a y   -   m a x S k e w :   5   t o p o l o g y K e y :   " t o p o l o g y . k u b e r n e t e s . i o / z o n e "   w h e n U n s a t i s f i a b l e :   S c h e d u l e A n y w a y   A l s o ,   t h e   l e g a c y   S e l e c t o r S p r e a d   p l u g i n ,   w h i c h   p r o v i d e s   a n   e q u i v a l e n t   b e h a v i o r ,   i s   d i s a b l e d   b y   d e f a u l t .


Question: What is Note:?

Answer: T h e   P o d T o p o l o g y S p r e a d   p l u g i n   d o e s   n o t   s c o r e   t h e   n o d e s   t h a t   d o n ' t   h a v e   t h e   t o p o l o g y   k e y s   s p e c i f i e d   i n   t h e   s p r e a d i n g   c o n s t r a i n t s .   T h i s   m i g h t   r e s u l t   i n   a   d i f f e r e n t   d e f a u l t   b e h a v i o r   c o m p a r e d   t o   t h e   l e g a c y   S e l e c t o r S p r e a d   p l u g i n   w h e n   u s i n g   t h e   d e f a u l t   t o p o l o g y   c o n s t r a i n t s .   I f   y o u r   n o d e s   a r e   n o t   e x p e c t e d   t o   h a v e   b o t h   k u b e r n e t e s . i o / h o s t n a m e   a n d   t o p o l o g y . k u b e r n e t e s . i o / z o n e   l a b e l s   s e t ,   d e f i n e   y o u r   o w n   c o n s t r a i n t s   i n s t e a d   o f   u s i n g   t h e   K u b e r n e t e s   d e f a u l t s .   I f   y o u   d o n ' t   w a n t   t o   u s e   t h e   d e f a u l t   P o d   s p r e a d i n g   c o n s t r a i n t s   f o r   y o u r   c l u s t e r ,   y o u   c a n   d i s a b l e   t h o s e   d e f a u l t s   b y   s e t t i n g   d e f a u l t i n g T y p e   t o   L i s t   a n d   l e a v i n g   e m p t y   d e f a u l t C o n s t r a i n t s   i n   t h e   P o d T o p o l o g y S p r e a d   p l u g i n   c o n f i g u r a t i o n :   a p i V e r s i o n :   k u b e s c h e d u l e r . c o n f i g . k 8 s . i o / v 1   k i n d :   K u b e S c h e d u l e r C o n f i g u r a t i o n   p r o f i l e s :   -   s c h e d u l e r N a m e :   d e f a u l t - s c h e d u l e r   p l u g i n C o n f i g :   -   n a m e :   P o d T o p o l o g y S p r e a d   a r g s :   d e f a u l t C o n s t r a i n t s :   [ ]   d e f a u l t i n g T y p e :   L i s t


Question: What is Comparison with podAffinity and podAntiAffinity?

Answer: I n   K u b e r n e t e s ,   i n t e r - P o d   a f f i n i t y   a n d   a n t i - a f f i n i t y   c o n t r o l   h o w   P o d s   a r e   s c h e d u l e d   i n   r e l a t i o n   t o   o n e   a n o t h e r   -   e i t h e r   m o r e   p a c k e d   o r   m o r e   s c a t t e r e d .   F o r   f i n e r   c o n t r o l ,   y o u   c a n   s p e c i f y   t o p o l o g y   s p r e a d   c o n s t r a i n t s   t o   d i s t r i b u t e   P o d s   a c r o s s   d i f f e r e n t   t o p o l o g y   d o m a i n s   -   t o   a c h i e v e   e i t h e r   h i g h   a v a i l a b i l i t y   o r   c o s t - s a v i n g .   T h i s   c a n   a l s o   h e l p   o n   r o l l i n g   u p d a t e   w o r k l o a d s   a n d   s c a l i n g   o u t   r e p l i c a s   s m o o t h l y .   F o r   m o r e   c o n t e x t ,   s e e   t h e   M o t i v a t i o n   s e c t i o n   o f   t h e   e n h a n c e m e n t   p r o p o s a l   a b o u t   P o d   t o p o l o g y   s p r e a d   c o n s t r a i n t s .


Question: What is Known limitations?

Answer: T h e r e ' s   n o   g u a r a n t e e   t h a t   t h e   c o n s t r a i n t s   r e m a i n   s a t i s f i e d   w h e n   P o d s   a r e   r e m o v e d .   F o r   e x a m p l e ,   s c a l i n g   d o w n   a   D e p l o y m e n t   m a y   r e s u l t   i n   i m b a l a n c e d   P o d s   d i s t r i b u t i o n . Y o u   c a n   u s e   a   t o o l   s u c h   a s   t h e   D e s c h e d u l e r   t o   r e b a l a n c e   t h e   P o d s   d i s t r i b u t i o n . P o d s   m a t c h e d   o n   t a i n t e d   n o d e s   a r e   r e s p e c t e d .   S e e   I s s u e   8 0 9 2 1 . T h e   s c h e d u l e r   d o e s n ' t   h a v e   p r i o r   k n o w l e d g e   o f   a l l   t h e   z o n e s   o r   o t h e r   t o p o l o g y   d o m a i n s   t h a t   a   c l u s t e r   h a s .   T h e y   a r e   d e t e r m i n e d   f r o m   t h e   e x i s t i n g   n o d e s   i n   t h e   c l u s t e r .   T h i s   c o u l d   l e a d   t o   a   p r o b l e m   i n   a u t o s c a l e d   c l u s t e r s ,   w h e n   a   n o d e   p o o l   ( o r   n o d e   g r o u p )   i s   s c a l e d   t o   z e r o   n o d e s ,   a n d   y o u ' r e   e x p e c t i n g   t h e   c l u s t e r   t o   s c a l e   u p ,   b e c a u s e ,   i n   t h i s   c a s e ,   t h o s e   t o p o l o g y   d o m a i n s   w o n ' t   b e   c o n s i d e r e d   u n t i l   t h e r e   i s   a t   l e a s t   o n e   n o d e   i n   t h e m . Y o u   c a n   w o r k   a r o u n d   t h i s   b y   u s i n g   a   N o d e   a u t o s c a l e r   t h a t   i s   a w a r e   o f   P o d   t o p o l o g y   s p r e a d   c o n s t r a i n t s   a n d   i s   a l s o   a w a r e   o f   t h e   o v e r a l l   s e t   o f   t o p o l o g y   d o m a i n s .   T h e r e ' s   n o   g u a r a n t e e   t h a t   t h e   c o n s t r a i n t s   r e m a i n   s a t i s f i e d   w h e n   P o d s   a r e   r e m o v e d .   F o r   e x a m p l e ,   s c a l i n g   d o w n


Question: What is What's next?

Answer: T h e   b l o g   a r t i c l e   I n t r o d u c i n g   P o d T o p o l o g y S p r e a d   e x p l a i n s   m a x S k e w   i n   s o m e   d e t a i l ,   a s   w e l l   a s   c o v e r i n g   s o m e   a d v a n c e d   u s a g e   e x a m p l e s . R e a d   t h e   s c h e d u l i n g   s e c t i o n   o f   t h e   A P I   r e f e r e n c e   f o r   P o d .


Question: What is Romana for NetworkPolicy?

Answer: Romana for NetworkPolicyThis page shows how to use Romana for NetworkPolicy.Before you beginComplete steps 1, 2, and 3 of the kubeadm getting started guide.Installing Romana with kubeadmFollow the containerized installation guide for kubeadm.Applying network policiesTo apply network policies use one of the following:Romana network policies.Example of Romana network policy.The NetworkPolicy API.What's nextOnce you have installed Romana, you can follow the Declare Network Policy to try out Kubernetes NetworkPolicy.


Question: How does Romana for NetworkPolicy work?

Answer: Romana for NetworkPolicyThis page shows how to use Romana for NetworkPolicy.Before you beginComplete steps 1, 2, and 3 of the kubeadm getting started guide.Installing Romana with kubeadmFollow the containerized installation guide for kubeadm.Applying network policiesTo apply network policies use one of the following:Romana network policies.Example of Romana network policy.The NetworkPolicy API.What's nextOnce you have installed Romana, you can follow the Declare Network Policy to try out Kubernetes NetworkPolicy.


Question: When would you use Romana for NetworkPolicy?

Answer: Romana for NetworkPolicyThis page shows how to use Romana for NetworkPolicy.Before you beginComplete steps 1, 2, and 3 of the kubeadm getting started guide.Installing Romana with kubeadmFollow the containerized installation guide for kubeadm.Applying network policiesTo apply network policies use one of the following:Romana network policies.Example of Romana network policy.The NetworkPolicy API.What's nextOnce you have installed Romana, you can follow the Declare Network Policy to try out Kubernetes NetworkPolicy.


Question: What are the benefits of Romana for NetworkPolicy?

Answer: Romana for NetworkPolicyThis page shows how to use Romana for NetworkPolicy.Before you beginComplete steps 1, 2, and 3 of the kubeadm getting started guide.Installing Romana with kubeadmFollow the containerized installation guide for kubeadm.Applying network policiesTo apply network policies use one of the following:Romana network policies.Example of Romana network policy.The NetworkPolicy API.What's nextOnce you have installed Romana, you can follow the Declare Network Policy to try out Kubernetes NetworkPolicy.


Question: What is Romana for NetworkPolicy?

Answer: T h i s   p a g e   s h o w s   h o w   t o   u s e   R o m a n a   f o r   N e t w o r k P o l i c y .


Question: What is Before you begin?

Answer: C o m p l e t e   s t e p s   1 ,   2 ,   a n d   3   o f   t h e   k u b e a d m   g e t t i n g   s t a r t e d   g u i d e .


Question: What is Installing Romana with kubeadm?

Answer: F o l l o w   t h e   c o n t a i n e r i z e d   i n s t a l l a t i o n   g u i d e   f o r   k u b e a d m .


Question: What is Applying network policies?

Answer: T o   a p p l y   n e t w o r k   p o l i c i e s   u s e   o n e   o f   t h e   f o l l o w i n g :   R o m a n a   n e t w o r k   p o l i c i e s . E x a m p l e   o f   R o m a n a   n e t w o r k   p o l i c y . T h e   N e t w o r k P o l i c y   A P I .   E x a m p l e   o f   R o m a n a   n e t w o r k   p o l i c y .


Question: What is What's next?

Answer: O n c e   y o u   h a v e   i n s t a l l e d   R o m a n a ,   y o u   c a n   f o l l o w   t h e   D e c l a r e   N e t w o r k   P o l i c y   t o   t r y   o u t   K u b e r n e t e s   N e t w o r k P o l i c y .


Question: What is DeviceClass?

Answer: DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors.apiVersion: resource.k8s.io/v1import "k8s.io/api/resource/v1"DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.apiVersion: resource.k8s.io/v1kind: DeviceClassmetadata (ObjectMeta)Standard object metadataspec (DeviceClassSpec), requiredSpec defines what can be allocated and how to configure it.This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.Changing the spec automatically increments the metadata.generation number.DeviceClassSpecDeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.config ([]DeviceClassConfiguration)Atomic: will be replaced during a mergeConfig defines configuration parameters that apply to each device that is claimed via this class. Some classes may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.They are passed to the driver, but are not considered while allocating the claim.DeviceClassConfiguration is used in DeviceClass.config.opaque (OpaqueDeviceConfiguration)Opaque provides driver-specific configuration parameters.OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.config.opaque.driver (string), requiredDriver is used to determine which kubelet plugin needs to be passed these configuration parameters.An admission policy provided by the driver developer could use this to decide whether it needs to validate them.Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.config.opaque.parameters (RawExtension), requiredParameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.The length of the raw data must be smaller or equal to 10 Ki.*RawExtension is used to hold extensions in external versions.To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.// Internal package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.Object json:"myPlugin" }type PluginA struct { AOption string json:"aOption" }// External package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.RawExtension json:"myPlugin" }type PluginA struct { AOp


Question: How does DeviceClass work?

Answer: DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors.apiVersion: resource.k8s.io/v1import "k8s.io/api/resource/v1"DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.apiVersion: resource.k8s.io/v1kind: DeviceClassmetadata (ObjectMeta)Standard object metadataspec (DeviceClassSpec), requiredSpec defines what can be allocated and how to configure it.This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.Changing the spec automatically increments the metadata.generation number.DeviceClassSpecDeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.config ([]DeviceClassConfiguration)Atomic: will be replaced during a mergeConfig defines configuration parameters that apply to each device that is claimed via this class. Some classes may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.They are passed to the driver, but are not considered while allocating the claim.DeviceClassConfiguration is used in DeviceClass.config.opaque (OpaqueDeviceConfiguration)Opaque provides driver-specific configuration parameters.OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.config.opaque.driver (string), requiredDriver is used to determine which kubelet plugin needs to be passed these configuration parameters.An admission policy provided by the driver developer could use this to decide whether it needs to validate them.Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.config.opaque.parameters (RawExtension), requiredParameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.The length of the raw data must be smaller or equal to 10 Ki.*RawExtension is used to hold extensions in external versions.To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.// Internal package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.Object json:"myPlugin" }type PluginA struct { AOption string json:"aOption" }// External package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.RawExtension json:"myPlugin" }type PluginA struct { AOp


Question: When would you use DeviceClass?

Answer: DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors.apiVersion: resource.k8s.io/v1import "k8s.io/api/resource/v1"DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.apiVersion: resource.k8s.io/v1kind: DeviceClassmetadata (ObjectMeta)Standard object metadataspec (DeviceClassSpec), requiredSpec defines what can be allocated and how to configure it.This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.Changing the spec automatically increments the metadata.generation number.DeviceClassSpecDeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.config ([]DeviceClassConfiguration)Atomic: will be replaced during a mergeConfig defines configuration parameters that apply to each device that is claimed via this class. Some classes may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.They are passed to the driver, but are not considered while allocating the claim.DeviceClassConfiguration is used in DeviceClass.config.opaque (OpaqueDeviceConfiguration)Opaque provides driver-specific configuration parameters.OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.config.opaque.driver (string), requiredDriver is used to determine which kubelet plugin needs to be passed these configuration parameters.An admission policy provided by the driver developer could use this to decide whether it needs to validate them.Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.config.opaque.parameters (RawExtension), requiredParameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.The length of the raw data must be smaller or equal to 10 Ki.*RawExtension is used to hold extensions in external versions.To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.// Internal package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.Object json:"myPlugin" }type PluginA struct { AOption string json:"aOption" }// External package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.RawExtension json:"myPlugin" }type PluginA struct { AOp


Question: What are the benefits of DeviceClass?

Answer: DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors.apiVersion: resource.k8s.io/v1import "k8s.io/api/resource/v1"DeviceClassDeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.apiVersion: resource.k8s.io/v1kind: DeviceClassmetadata (ObjectMeta)Standard object metadataspec (DeviceClassSpec), requiredSpec defines what can be allocated and how to configure it.This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.Changing the spec automatically increments the metadata.generation number.DeviceClassSpecDeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.config ([]DeviceClassConfiguration)Atomic: will be replaced during a mergeConfig defines configuration parameters that apply to each device that is claimed via this class. Some classes may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.They are passed to the driver, but are not considered while allocating the claim.DeviceClassConfiguration is used in DeviceClass.config.opaque (OpaqueDeviceConfiguration)Opaque provides driver-specific configuration parameters.OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.config.opaque.driver (string), requiredDriver is used to determine which kubelet plugin needs to be passed these configuration parameters.An admission policy provided by the driver developer could use this to decide whether it needs to validate them.Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.config.opaque.parameters (RawExtension), requiredParameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.The length of the raw data must be smaller or equal to 10 Ki.*RawExtension is used to hold extensions in external versions.To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.// Internal package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.Object json:"myPlugin" }type PluginA struct { AOption string json:"aOption" }// External package:type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.RawExtension json:"myPlugin" }type PluginA struct { AOp


Question: What is DeviceClass?

Answer: a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1   i m p o r t   " k 8 s . i o / a p i / r e s o u r c e / v 1 "


Question: What is DeviceClass?

Answer: D e v i c e C l a s s   i s   a   v e n d o r -   o r   a d m i n - p r o v i d e d   r e s o u r c e   t h a t   c o n t a i n s   d e v i c e   c o n f i g u r a t i o n   a n d   s e l e c t o r s .   I t   c a n   b e   r e f e r e n c e d   i n   t h e   d e v i c e   r e q u e s t s   o f   a   c l a i m   t o   a p p l y   t h e s e   p r e s e t s .   C l u s t e r   s c o p e d .   T h i s   i s   a n   a l p h a   t y p e   a n d   r e q u i r e s   e n a b l i n g   t h e   D y n a m i c R e s o u r c e A l l o c a t i o n   f e a t u r e   g a t e .   a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1 k i n d :   D e v i c e C l a s s m e t a d a t a   ( O b j e c t M e t a ) S t a n d a r d   o b j e c t   m e t a d a t a s p e c   ( D e v i c e C l a s s S p e c ) ,   r e q u i r e d S p e c   d e f i n e s   w h a t   c a n   b e   a l l o c a t e d   a n d   h o w   t o   c o n f i g u r e   i t . T h i s   i s   m u t a b l e .   C o n s u m e r s   h a v e   t o   b e   p r e p a r e d   f o r   c l a s s e s   c h a n g i n g   a t   a n y   t i m e ,   e i t h e r   b e c a u s e   t h e y   g e t   u p d a t e d   o r   r e p l a c e d .   C l a i m   a l l o c a t i o n s   a r e   d o n e   o n c e   b a s e d   o n   w h a t e v e r   w a s   s e t   i n   c l a s s e s   a t   t h e   t i m e   o f   a l l o c a t i o n . C h a n g i n g   t h e   s p e c   a u t o m a t i c a l l y   i n c r e m e n t s   t h e   m e t a d a t a . g e n e r a t i o n   n u m b e r .   a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1   k i n d :   D e v i c e C l a s s   m e t a d a t a   ( O b j e c t M e t a )   S t a n d a r d   o b j e c t   m e t a d a t a   s p e c   ( D e v i c e C l a s s S p e c ) ,   r e q u i r e d   S p e c   d e f i n e s   w h a t   c a n   b e   a l l o c a t e d   a n d   h o w   t o   c o n f i g u r e   i t .   T h i s   i s   m u t a b l e .   C o n s u m e r s   h a v e   t o   b e   p r e p a r e d


Question: What is DeviceClassSpec?

Answer: D e v i c e C l a s s S p e c   i s   u s e d   i n   a   [ D e v i c e C l a s s ]   t o   d e f i n e   w h a t   c a n   b e   a l l o c a t e d   a n d   h o w   t o   c o n f i g u r e   i t .   c o n f i g   ( [ ] D e v i c e C l a s s C o n f i g u r a t i o n ) A t o m i c :   w i l l   b e   r e p l a c e d   d u r i n g   a   m e r g e C o n f i g   d e f i n e s   c o n f i g u r a t i o n   p a r a m e t e r s   t h a t   a p p l y   t o   e a c h   d e v i c e   t h a t   i s   c l a i m e d   v i a   t h i s   c l a s s .   S o m e   c l a s s e s   m a y   p o t e n t i a l l y   b e   s a t i s f i e d   b y   m u l t i p l e   d r i v e r s ,   s o   e a c h   i n s t a n c e   o f   a   v e n d o r   c o n f i g u r a t i o n   a p p l i e s   t o   e x a c t l y   o n e   d r i v e r . T h e y   a r e   p a s s e d   t o   t h e   d r i v e r ,   b u t   a r e   n o t   c o n s i d e r e d   w h i l e   a l l o c a t i n g   t h e   c l a i m . D e v i c e C l a s s C o n f i g u r a t i o n   i s   u s e d   i n   D e v i c e C l a s s . c o n f i g . o p a q u e   ( O p a q u e D e v i c e C o n f i g u r a t i o n ) O p a q u e   p r o v i d e s   d r i v e r - s p e c i f i c   c o n f i g u r a t i o n   p a r a m e t e r s . O p a q u e D e v i c e C o n f i g u r a t i o n   c o n t a i n s   c o n f i g u r a t i o n   p a r a m e t e r s   f o r   a   d r i v e r   i n   a   f o r m a t   d e f i n e d   b y   t h e   d r i v e r   v e n d o r . c o n f i g . o p a q u e . d r i v e r   ( s t r i n g ) ,   r e q u i r e d D r i v e r   i s   u s e d   t o   d e t e r m i n e   w h i c h   k u b e l e t   p l u g i n   n e e d s   t o   b e   p a s s e d   t h e s e   c o n f i g u r a t i o n   p a r a m e t e r s . A n   a d m i s s i o n   p o l i c y   p r o v i d e d   b y   t h e   d r i v e r   d e v e l o p e r   c o u l d   u s e   t h i s   t o   d e c i d e   w h e t h e r   i t   n e e d s   t o   v a l i d a t e   t h e m . M


Question: What is DeviceClassList?

Answer: D e v i c e C l a s s L i s t   i s   a   c o l l e c t i o n   o f   c l a s s e s .   a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1 k i n d :   D e v i c e C l a s s L i s t m e t a d a t a   ( L i s t M e t a ) S t a n d a r d   l i s t   m e t a d a t a i t e m s   ( [ ] D e v i c e C l a s s ) ,   r e q u i r e d I t e m s   i s   t h e   l i s t   o f   r e s o u r c e   c l a s s e s .   a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1   k i n d :   D e v i c e C l a s s L i s t   m e t a d a t a   ( L i s t M e t a )   S t a n d a r d   l i s t   m e t a d a t a   i t e m s   ( [ ] D e v i c e C l a s s ) ,   r e q u i r e d   I t e m s   i s   t h e   l i s t   o f   r e s o u r c e   c l a s s e s .


Question: What is HTTP Request?

Answer: G E T   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s / { n a m e }


Question: What is Parameters?

Answer: n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d n a m e   o f   t h e   D e v i c e C l a s s p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y   n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d   n a m e   o f   t h e   D e v i c e C l a s s   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s ) :   O K   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: G E T   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s


Question: What is Parameters?

Answer: a l l o w W a t c h B o o k m a r k s   ( i n   q u e r y ) :   b o o l e a n a l l o w W a t c h B o o k m a r k s c o n t i n u e   ( i n   q u e r y ) :   s t r i n g c o n t i n u e f i e l d S e l e c t o r   ( i n   q u e r y ) :   s t r i n g f i e l d S e l e c t o r l a b e l S e l e c t o r   ( i n   q u e r y ) :   s t r i n g l a b e l S e l e c t o r l i m i t   ( i n   q u e r y ) :   i n t e g e r l i m i t p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y r e s o u r c e V e r s i o n   ( i n   q u e r y ) :   s t r i n g r e s o u r c e V e r s i o n r e s o u r c e V e r s i o n M a t c h   ( i n   q u e r y ) :   s t r i n g r e s o u r c e V e r s i o n M a t c h s e n d I n i t i a l E v e n t s   ( i n   q u e r y ) :   b o o l e a n s e n d I n i t i a l E v e n t s t i m e o u t S e c o n d s   ( i n   q u e r y ) :   i n t e g e r t i m e o u t S e c o n d s w a t c h   ( i n   q u e r y ) :   b o o l e a n w a t c h   a l l o w W a t c h B o o k m a r k s   ( i n   q u e r y ) :   b o o l e a n   a l l o w W a t c h B o o k m a r k s   c o n t i n u e   ( i n   q u e r y ) :   s t r i n g   c o n t i n u e   f i e l d S e l e c t o r   ( i n   q u e r y ) :   s t r i n g   f i e l d S e l e c t o r   l a b e l S e l e c t o r   ( i n   q u e r y ) :   s t r i n g   l a b e l S e l e c t o r   l i m i t   ( i n   q u e r y ) :   i n t e g e r   l i m i t   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y   r e s o u r c e V e r s i o n   ( i n   q u e r y ) :   s t r i n g   r e s o u r c e V e r s i o n   r e s o u r c e V e r s i o n M a t c h   ( i n   q u e r y ) :   s t r i n g   r e s o u r c e V e r s i o n M a t c h   s e n d I n i t i a l E v e n t s   ( i n   q u e r y ) :   b o o l e a n   s e n d I n i t i a l E v e n t s   t i m e o u t S e c o n d s   ( i n   q u e r y ) :   i n t e g e r   t i m e o u t S e c o n d s   w a t c h   ( i n   q u e r y ) :   b o o l e a n   w a t c h


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s L i s t ) :   O K   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: P O S T   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s


Question: What is Parameters?

Answer: b o d y :   D e v i c e C l a s s ,   r e q u i r e d d r y R u n   ( i n   q u e r y ) :   s t r i n g d r y R u n f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g f i e l d M a n a g e r f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g f i e l d V a l i d a t i o n p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y   b o d y :   D e v i c e C l a s s ,   r e q u i r e d   d r y R u n   ( i n   q u e r y ) :   s t r i n g   d r y R u n   f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g   f i e l d M a n a g e r   f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g   f i e l d V a l i d a t i o n   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s ) :   O K   2 0 1   ( D e v i c e C l a s s ) :   C r e a t e d   2 0 2   ( D e v i c e C l a s s ) :   A c c e p t e d   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: P U T   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s / { n a m e }


Question: What is Parameters?

Answer: n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d n a m e   o f   t h e   D e v i c e C l a s s b o d y :   D e v i c e C l a s s ,   r e q u i r e d d r y R u n   ( i n   q u e r y ) :   s t r i n g d r y R u n f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g f i e l d M a n a g e r f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g f i e l d V a l i d a t i o n p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y   n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d   n a m e   o f   t h e   D e v i c e C l a s s   b o d y :   D e v i c e C l a s s ,   r e q u i r e d   d r y R u n   ( i n   q u e r y ) :   s t r i n g   d r y R u n   f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g   f i e l d M a n a g e r   f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g   f i e l d V a l i d a t i o n   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s ) :   O K   2 0 1   ( D e v i c e C l a s s ) :   C r e a t e d   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: P A T C H   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s / { n a m e }


Question: What is Parameters?

Answer: n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d n a m e   o f   t h e   D e v i c e C l a s s b o d y :   P a t c h ,   r e q u i r e d d r y R u n   ( i n   q u e r y ) :   s t r i n g d r y R u n f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g f i e l d M a n a g e r f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g f i e l d V a l i d a t i o n f o r c e   ( i n   q u e r y ) :   b o o l e a n f o r c e p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y   n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d   n a m e   o f   t h e   D e v i c e C l a s s   b o d y :   P a t c h ,   r e q u i r e d   d r y R u n   ( i n   q u e r y ) :   s t r i n g   d r y R u n   f i e l d M a n a g e r   ( i n   q u e r y ) :   s t r i n g   f i e l d M a n a g e r   f i e l d V a l i d a t i o n   ( i n   q u e r y ) :   s t r i n g   f i e l d V a l i d a t i o n   f o r c e   ( i n   q u e r y ) :   b o o l e a n   f o r c e   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s ) :   O K   2 0 1   ( D e v i c e C l a s s ) :   C r e a t e d   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: D E L E T E   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s / { n a m e }


Question: What is Parameters?

Answer: n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d n a m e   o f   t h e   D e v i c e C l a s s b o d y :   D e l e t e O p t i o n s d r y R u n   ( i n   q u e r y ) :   s t r i n g d r y R u n g r a c e P e r i o d S e c o n d s   ( i n   q u e r y ) :   i n t e g e r g r a c e P e r i o d S e c o n d s i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   ( i n   q u e r y ) :   b o o l e a n i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y p r o p a g a t i o n P o l i c y   ( i n   q u e r y ) :   s t r i n g p r o p a g a t i o n P o l i c y   n a m e   ( i n   p a t h ) :   s t r i n g ,   r e q u i r e d   n a m e   o f   t h e   D e v i c e C l a s s   b o d y :   D e l e t e O p t i o n s   d r y R u n   ( i n   q u e r y ) :   s t r i n g   d r y R u n   g r a c e P e r i o d S e c o n d s   ( i n   q u e r y ) :   i n t e g e r   g r a c e P e r i o d S e c o n d s   i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   ( i n   q u e r y ) :   b o o l e a n   i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   p r e t t y   ( i n   q u e r y ) :   s t r i n g   p r e t t y   p r o p a g a t i o n P o l i c y   ( i n   q u e r y ) :   s t r i n g   p r o p a g a t i o n P o l i c y


Question: What is Response?

Answer: 2 0 0   ( D e v i c e C l a s s ) :   O K   2 0 2   ( D e v i c e C l a s s ) :   A c c e p t e d   4 0 1 :   U n a u t h o r i z e d


Question: What is HTTP Request?

Answer: D E L E T E   / a p i s / r e s o u r c e . k 8 s . i o / v 1 / d e v i c e c l a s s e s


Question: What is Parameters?

Answer: b o d y :   D e l e t e O p t i o n s c o n t i n u e   ( i n   q u e r y ) :   s t r i n g c o n t i n u e d r y R u n   ( i n   q u e r y ) :   s t r i n g d r y R u n f i e l d S e l e c t o r   ( i n   q u e r y ) :   s t r i n g f i e l d S e l e c t o r g r a c e P e r i o d S e c o n d s   ( i n   q u e r y ) :   i n t e g e r g r a c e P e r i o d S e c o n d s i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   ( i n   q u e r y ) :   b o o l e a n i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l l a b e l S e l e c t o r   ( i n   q u e r y ) :   s t r i n g l a b e l S e l e c t o r l i m i t   ( i n   q u e r y ) :   i n t e g e r l i m i t p r e t t y   ( i n   q u e r y ) :   s t r i n g p r e t t y p r o p a g a t i o n P o l i c y   ( i n   q u e r y ) :   s t r i n g p r o p a g a t i o n P o l i c y r e s o u r c e V e r s i o n   ( i n   q u e r y ) :   s t r i n g r e s o u r c e V e r s i o n r e s o u r c e V e r s i o n M a t c h   ( i n   q u e r y ) :   s t r i n g r e s o u r c e V e r s i o n M a t c h s e n d I n i t i a l E v e n t s   ( i n   q u e r y ) :   b o o l e a n s e n d I n i t i a l E v e n t s t i m e o u t S e c o n d s   ( i n   q u e r y ) :   i n t e g e r t i m e o u t S e c o n d s   b o d y :   D e l e t e O p t i o n s   c o n t i n u e   ( i n   q u e r y ) :   s t r i n g   c o n t i n u e   d r y R u n   ( i n   q u e r y ) :   s t r i n g   d r y R u n   f i e l d S e l e c t o r   ( i n   q u e r y ) :   s t r i n g   f i e l d S e l e c t o r   g r a c e P e r i o d S e c o n d s   ( i n   q u e r y ) :   i n t e g e r   g r a c e P e r i o d S e c o n d s   i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   ( i n   q u e r y ) :   b o o l e a n   i g n o r e S t o r e R e a d E r r o r W i t h C l u s t e r B r e a k i n g P o t e n t i a l   l a b e l S e l e c t o r   (


Question: What is Response?

Answer: 2 0 0   ( S t a t u s ) :   O K   4 0 1 :   U n a u t h o r i z e d   T h i s   p a g e   i s   a u t o m a t i c a l l y   g e n e r a t e d .   I f   y o u   p l a n   t o   r e p o r t   a n   i s s u e   w i t h   t h i s   p a g e ,   m e n t i o n   t h a t   t h e   p a g e   i s   a u t o - g e n e r a t e d   i n   y o u r   i s s u e   d e s c r i p t i o n .   T h e   f i x   m a y   n e e d   t o   h a p p e n   e l s e w h e r e   i n   t h e   K u b e r n e t e s   p r o j e c t .


Question: What is PR wranglers?

Answer: PR wranglersSIG Docs approvers take week-long shifts managing pull requests for the repository.This section covers the duties of a PR wrangler. For more information on giving good reviews, see Reviewing changes.DutiesEach day in a week-long shift as PR Wrangler:Review open pull requests for quality and adherence to the Style and Content guides.Start with the smallest PRs (size/XS) first, and end with the largest (size/XXL). Review as many PRs as you can.Make sure PR contributors sign the CLA.Use this script to remind contributors that haven't signed the CLA to do so.Provide


Question: How does PR wranglers work?

Answer: PR wranglersSIG Docs approvers take week-long shifts managing pull requests for the repository.This section covers the duties of a PR wrangler. For more information on giving good reviews, see Reviewing changes.DutiesEach day in a week-long shift as PR Wrangler:Review open pull requests for quality and adherence to the Style and Content guides.Start with the smallest PRs (size/XS) first, and end with the largest (size/XXL). Review as many PRs as you can.Make sure PR contributors sign the CLA.Use this script to remind contributors that haven't signed the CLA to do so.Provide


Question: When would you use PR wranglers?

Answer: PR wranglersSIG Docs approvers take week-long shifts managing pull requests for the repository.This section covers the duties of a PR wrangler. For more information on giving good reviews, see Reviewing changes.DutiesEach day in a week-long shift as PR Wrangler:Review open pull requests for quality and adherence to the Style and Content guides.Start with the smallest PRs (size/XS) first, and end with the largest (size/XXL). Review as many PRs as you can.Make sure PR contributors sign the CLA.Use this script to remind contributors that haven't signed the CLA to do so.Provide


Question: What are the benefits of PR wranglers?

Answer: PR wranglersSIG Docs approvers take week-long shifts managing pull requests for the repository.This section covers the duties of a PR wrangler. For more information on giving good reviews, see Reviewing changes.DutiesEach day in a week-long shift as PR Wrangler:Review open pull requests for quality and adherence to the Style and Content guides.Start with the smallest PRs (size/XS) first, and end with the largest (size/XXL). Review as many PRs as you can.Make sure PR contributors sign the CLA.Use this script to remind contributors that haven't signed the CLA to do so.Provide


Question: What is PR wranglers?

Answer: S I G   D o c s   a p p r o v e r s   t a k e   w e e k - l o n g   s h i f t s   m a n a g i n g   p u l l   r e q u e s t s   f o r   t h e   r e p o s i t o r y .   T h i s   s e c t i o n   c o v e r s   t h e   d u t i e s   o f   a   P R   w r a n g l e r .   F o r   m o r e   i n f o r m a t i o n   o n   g i v i n g   g o o d   r e v i e w s ,   s e e   R e v i e w i n g   c h a n g e s .


Question: What is Duties?

Answer: E a c h   d a y   i n   a   w e e k - l o n g   s h i f t   a s   P R   W r a n g l e r :   R e v i e w   o p e n   p u l l   r e q u e s t s   f o r   q u a l i t y   a n d   a d h e r e n c e   t o   t h e   S t y l e   a n d   C o n t e n t   g u i d e s . S t a r t   w i t h   t h e   s m a l l e s t   P R s   ( s i z e / X S )   f i r s t ,   a n d   e n d   w i t h   t h e   l a r g e s t   ( s i z e / X X L ) .   R e v i e w   a s   m a n y   P R s   a s   y o u   c a n . M a k e   s u r e   P R   c o n t r i b u t o r s   s i g n   t h e   C L A . U s e   t h i s   s c r i p t   t o   r e m i n d   c o n t r i b u t o r s   t h a t   h a v e n ' t   s i g n e d   t h e   C L A   t o   d o   s o . P r o v i d e


Question: What is Helpful GitHub queries for wranglers?

Answer: T h e   f o l l o w i n g   q u e r i e s   a r e   h e l p f u l   w h e n   w r a n g l i n g .   A f t e r   w o r k i n g   t h r o u g h   t h e s e   q u e r i e s ,   t h e   r e m a i n i n g   l i s t   o f   P R s   t o   r e v i e w   i s   u s u a l l y   s m a l l .   T h e s e   q u e r i e s   e x c l u d e   l o c a l i z a t i o n   P R s .   A l l   q u e r i e s   a r e   a g a i n s t   t h e   m a i n   b r a n c h   e x c e p t   t h e   l a s t   o n e .   N o   C L A ,   n o t   e l i g i b l e   t o   m e r g e :   R e m i n d   t h e   c o n t r i b u t o r   t o   s i g n   t h e   C L A .   I f   b o t h   t h e   b o t   a n d   a   h u m a n   h a v e   r e m i n d e d   t h e m ,   c l o s e   t h e   P R   a n d   r e m i n d   t h e m   t h a t   t h e y   c a n   o p e n   i t   a f t e r   s i g n i n g   t h e   C L A .   D o   n o t   r e v i e w   P R s   w h o s e   a u t h o r s   h a v e   n o t   s i g n e d   t h e   C L A ! N e e d s   L G T M :   L i s t s   P R s   t h a t   n e e d   a n   L G T M   f r o m   a   m e m b e r .   I f   t h e   P R   n e e d s   t e c h n i c a l   r e v i e w ,   l o o p   i n   o n e   o f   t h e   r e v i e w e r s   s u g g e s t e d   b y   t h e   b o t .   I f   t h e   c o n t e n t   n e e d s   w o r k ,   a d d   s u g g e s t i o n s   a n d


Question: What is Helpful Prow commands for wranglers?

Answer: #   a d d   E n g l i s h   l a b e l   / l a n g u a g e   e n   #   a d d   s q u a s h   l a b e l   t o   P R   i f   m o r e   t h a n   o n e   c o m m i t   / l a b e l   t i d e / m e r g e - m e t h o d - s q u a s h   #   r e t i t l e   a   P R   v i a   P r o w   ( s u c h   a s   a   w o r k - i n - p r o g r e s s   [ W I P ]   o r   b e t t e r   d e t a i l   o f   P R )   / r e t i t l e   [ W I P ]   < T I T L E >


Question: What is When to close Pull Requests?

Answer: R e v i e w s   a n d   a p p r o v a l s   a r e   o n e   t o o l   t o   k e e p   o u r   P R   q u e u e   s h o r t   a n d   c u r r e n t .   A n o t h e r   t o o l   i s   c l o s u r e .   C l o s e   P R s   w h e r e :   T h e   a u t h o r   h a s n ' t   s i g n e d   t h e   C L A   f o r   t w o   w e e k s . A u t h o r s   c a n   r e o p e n   t h e   P R   a f t e r   s i g n i n g   t h e   C L A .   T h i s   i s   a   l o w - r i s k   w a y   t o   m a k e   s u r e   n o t h i n g   g e t s   m e r g e d   w i t h o u t   a   s i g n e d   C L A . T h e   a u t h o r   h a s   n o t   r e s p o n d e d   t o   c o m m e n t s   o r


Question: What is PR Wrangler shadow program?

Answer: I n   l a t e   2 0 2 1 ,   S I G   D o c s   i n t r o d u c e d   t h e   P R   W r a n g l e r   S h a d o w   P r o g r a m .   T h e   p r o g r a m   w a s   i n t r o d u c e d   t o   h e l p   n e w   c o n t r i b u t o r s   u n d e r s t a n d   t h e   P R   w r a n g l i n g   p r o c e s s .


Question: What is Become a shadow?

Answer: I f   y o u   a r e   i n t e r e s t e d   i n   s h a d o w i n g   a s   a   P R   w r a n g l e r ,   p l e a s e   v i s i t   t h e   P R   W r a n g l e r s   W i k i   p a g e   t o   s e e   t h e   P R   w r a n g l i n g   s c h e d u l e   f o r   t h i s   y e a r   a n d   s i g n   u p . O t h e r s   c a n   r e a c h   o u t   o n   t h e   # s i g - d o c s   S l a c k   c h a n n e l   f o r   r e q u e s t i n g   t o   s h a d o w   a n   a s s i g n e d   P R   W r a n g l e r   f o r   a   s p e c i f i c   w e e k .   F e e l   f r e e   t o   r e a c h   o u t   t o   o n e   o f   t h e   S I G   D o c s   c o - c h a i r s / l e a d s . O n c e   y o u ' v e   s i g n e d   u p   t o   s h a d o w   a   P R   W r a n g l e r ,   i n t r o d u c e   y o u r s e l f   t o   t h e   P R   W r a n g l e r   o n   t h e   K u b e r n e t e s   S l a c k .   I f   y o u   a r e   i n t e r e s t e d   i n   s h a d o w i n g   a s   a   P R   w r a n g l e r ,   p l e a s e   v i s i t   t h e   P R   W r a n g l e r s   W i k i   p a g e   t o   s e e   t h e   P R   w r a n g l i n g   s c h e d u l e   f o r   t h i s   y e a r   a n d   s i g n   u p .   O t h e r s   c a n   r e a c h   o u t   o n   t h e   # s i g - d o c s   S l a c k   c h a n n e l   f o r   r e q u e s t i n g   t o   s h a d o w   a n   a s s i g n e d   P R   W r a n g l e r   f o r   a   s p e c i f i c   w e e k .   F e e l   f r e e   t o   r e a c h   o u t   t o   o n e   o f   t h e   S I G   D o c s   c o - c h a i r s / l e a d s .   O n c e   y o u ' v e   s i g n e d   u p   t o   s h a d o w   a   P R   W r a n g l e r ,   i n t r o d u c e   y o u r s e l f   t o   t h e   P R   W r a n g l e r   o n   t h e   K u b e r n e t e s   S l a c k .