Question: What is Optional parameters?

Answer: I t   c a n   b e   c o n v e n i e n t   t o   b e   a b l e   t o   h a v e   o p t i o n a l   p a r a m e t e r s   a s   p a r t   o f   a   p a r a m e t e r   r e s o u r c e ,   a n d   o n l y   v a l i d a t e   t h e m   i f   p r e s e n t .   C E L   p r o v i d e s   h a s ( ) ,   w h i c h   c h e c k s   i f   t h e   k e y   p a s s e d   t o   i t   e x i s t s .   C E L   a l s o   i m p l e m e n t s   B o o l e a n   s h o r t - c i r c u i t i n g .   I f   t h e   f i r s t   h a l f   o f   a   l o g i c a l   O R   e v a l u a t e s   t o   t r u e ,   i t   w o n ’ t   e v a l u a t e   t h e   o t h e r   h a l f   ( s i n c e   t h e   r e s u l t   o f   t h e   e n t i r e   O R   w i l l   b e   t r u e   r e g a r d l e s s ) .   C o m b i n i n g   t h e   t w o ,   w e   c a n   p r o v i d e   a   w a y   t o   v a l i d a t e   o p t i o n a l   p a r a m e t e r s :   ! h a s ( p a r a m s . o p t i o n a l N u m b e r )   | |   ( p a r a m s . o p t i o n a l N u m b e r   > =   5   & &   p a r a m s . o p t i o n a l N u m b e r   < =   1 0 )   H e r e ,   w e   f i r s t   c h e c k   t h a t   t h e   o p t i o n a l   p a r a m e t e r   i s   p r e s e n t   w i t h   ! h a s ( p a r a m s . o p t i o n a l N u m b e r ) .   I f   o p t i o n a l N u m b e r   h a s n ’ t   b e e n   d e f i n e d ,   t h e n   t h e   e x p r e s s i o n   s h o r t - c i r c u i t s   s i n c e   ! h a s ( p a r a m s . o p t i o n a l N u m b e r )   w i l l   e v a l u a t e   t o   t r u e . I f   o p t i o n a l N u m b e r   h a s   b e e n   d e f i n e d ,   t h e n   t h e   l a t t e r   h a l f   o f   t h e   C E L   e x p r e s s i o n   w i l l   b e   e v a l u a t e d ,   a n d   o p t i o n a l N u m b e r   w i l l   b e   c h e c k e d   t o   e n s u r e   t h a t   i t   c o n t a i n s   a   v a l u e   b e t w e e n   5   a n d   1 0   i n c l u s i v e .


Question: What is Per-namespace Parameters?

Answer: A s   t h e   a u t h o r   o f   a   V a l i d a t i n g A d m i s s i o n P o l i c y   a n d   i t s   V a l i d a t i n g A d m i s s i o n P o l i c y B i n d i n g ,   y o u   c a n   c h o o s e   t o   s p e c i f y   c l u s t e r - w i d e ,   o r   p e r - n a m e s p a c e   p a r a m e t e r s .   I f   y o u   s p e c i f y   a   n a m e s p a c e   f o r   t h e   b i n d i n g ' s   p a r a m R e f ,   t h e   c o n t r o l   p l a n e   o n l y   s e a r c h e s   f o r   p a r a m e t e r s   i n   t h a t   n a m e s p a c e .   H o w e v e r ,   i f   n a m e s p a c e   i s   n o t   s p e c i f i e d   i n   t h e   V a l i d a t i n g A d m i s s i o n P o l i c y B i n d i n g ,   t h e   A P I   s e r v e r   c a n   s e a r c h   f o r   r e l e v a n t   p a r a m e t e r s   i n   t h e   n a m e s p a c e   t h a t   a   r e q u e s t   i s   a g a i n s t .   F o r   e x a m p l e ,   i f   y o u   m a k e   a   r e q u e s t   t o   m o d i f y   a   C o n f i g M a p   i n   t h e   d e f a u l t   n a m e s p a c e   a n d   t h e r e   i s   a   r e l e v a n t   V a l i d a t i n g A d m i s s i o n P o l i c y B i n d i n g   w i t h   n o   n a m e s p a c e   s e t ,   t h e n   t h e   A P I   s e r v e r   l o o k s   f o r   a   p a r a m e t e r   o b j e c t   i n   d e f a u l t .   T h i s   d e s i g n   e n a b l e s   p o l i c y   c o n f i g u r a t i o n   t h a t   d e p e n d s   o n   t h e   n a m e s p a c e   o f   t h e   r e s o u r c e   b e i n g   m a n i p u l a t e d ,   f o r   m o r e   f i n e - t u n e d   c o n t r o l .


Question: What is Parameter selector?

Answer: I n   a d d i t i o n   t o   s p e c i f y   a   p a r a m e t e r   i n   a   b i n d i n g   b y   n a m e ,   y o u   m a y   c h o o s e   i n s t e a d   t o   s p e c i f y   l a b e l   s e l e c t o r ,   s u c h   t h a t   a l l   r e s o u r c e s   o f   t h e   p o l i c y ' s   p a r a m K i n d ,   a n d   t h e   p a r a m ' s   n a m e s p a c e   ( i f   a p p l i c a b l e )   t h a t   m a t c h   t h e   l a b e l   s e l e c t o r   a r e   s e l e c t e d   f o r   e v a l u a t i o n .   S e e   s e l e c t o r   f o r   m o r e   i n f o r m a t i o n   o n   h o w   l a b e l   s e l e c t o r s   m a t c h   r e s o u r c e s .   I f   m u l t i p l e   p a r a m e t e r s   a r e   f o u n d   t o   m e e t   t h e   c o n d i t i o n ,   t h e   p o l i c y ' s   r u l e s   a r e   e v a l u a t e d   f o r   e a c h   p a r a m e t e r   f o u n d   a n d   t h e   r e s u l t s   w i l l   b e   A N D e d   t o g e t h e r .   I f   n a m e s p a c e   i s   p r o v i d e d ,   o n l y   o b j e c t s   o f   t h e   p a r a m K i n d   i n   t h e   p r o v i d e d   n a m e s p a c e   a r e   e l i g i b l e   f o r   s e l e c t i o n .   O t h e r w i s e ,   w h e n   n a m e s p a c e   i s   e m p t y   a n d   p a r a m K i n d   i s   n a m e s p a c e - s c o p e d ,   t h e   n a m e s p a c e   u s e d   i n   t h e   r e q u e s t   b e i n g   a d m i t t e d   w i l l   b e   u s e d .


Question: What is Authorization checks?

Answer: W e   i n t r o d u c e d   t h e   a u t h o r i z a t i o n   c h e c k   f o r   p a r a m e t e r   r e s o u r c e s .   U s e r   i s   e x p e c t e d   t o   h a v e   r e a d   a c c e s s   t o   t h e   r e s o u r c e s   r e f e r e n c e d   b y   p a r a m K i n d   i n   V a l i d a t i n g A d m i s s i o n P o l i c y   a n d   p a r a m R e f   i n   V a l i d a t i n g A d m i s s i o n P o l i c y B i n d i n g .   N o t e   t h a t   i f   a   r e s o u r c e   i n   p a r a m K i n d   f a i l s   r e s o l v i n g   v i a   t h e   r e s t m a p p e r ,   r e a d   a c c e s s   t o   a l l   r e s o u r c e s   o f   g r o u p s   i s   r e q u i r e d .


Question: What is paramRef?

Answer: T h e   p a r a m R e f   f i e l d   s p e c i f i e s   t h e   p a r a m e t e r   r e s o u r c e   u s e d   b y   t h e   p o l i c y .   I t   h a s   t h e   f o l l o w i n g   f i e l d s :   n a m e :   T h e   n a m e   o f   t h e   p a r a m e t e r   r e s o u r c e . n a m e s p a c e :   T h e   n a m e s p a c e   o f   t h e   p a r a m e t e r   r e s o u r c e . s e l e c t o r :   A   l a b e l   s e l e c t o r   t o   m a t c h   m u l t i p l e   p a r a m e t e r   r e s o u r c e s . p a r a m e t e r N o t F o u n d A c t i o n :   ( R e q u i r e d )   C o n t r o l s   t h e   b e h a v i o r   w h e n   t h e   s p e c i f i e d   p a r a m e t e r s   a r e   n o t   f o u n d . A l l o w e d   V a l u e s : A l l o w :   T h e   a b s e n c e   o f   m a t c h e d   p a r a m e t e r s   i s   t r e a t e d   a s   a   s u c c e s s f u l   v a l i d a t i o n   b y   t h e   b i n d i n g . D e n y :   T h e   a b s e n c e   o f   m a t c h e d   p a r a m e t e r s   i s   s u b j e c t   t o   t h e   f a i l u r e P o l i c y   o f   t h e   p o l i c y .   n a m e :   T h e   n a m e   o f   t h e   p a r a m e t e r   r e s o u r c e .   n a m e s p a c e :   T h e   n a m e s p a c e   o f   t h e   p a r a m e t e r   r e s o u r c e .   s e l e c t o r :   A   l a b e l   s e l e c t o r   t o   m a t c h   m u l t i p l e   p a r a m e t e r   r e s o u r c e s .   p a r a m e t e r N o t F o u n d A c t i o n :   ( R e q u i r e d )   C o n t r o l s   t h e   b e h a v i o r   w h e n   t h e   s p e c i f i e d   p a r a m e t e r s   a r e   n o t   f o u n d .   A l l o w e d   V a l u e s : A l l o w :   T h e   a b s e n c e   o f   m a t c h e d   p a r a m e t e r s   i s   t r e a t e d   a s   a   s u c c e s s f u l   v a l i d a t i o n   b y   t h e   b i n d i n g . D e n y :   T h e   a b s e n c e   o f   m a t c h e d   p a r a m e t e r s   i s   s u b j e c t   t o   t h e   f a i l u r e P o l i c y


Question: What is Note:?

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


Question: What is Handling Missing Parameters with parameterNotFoundAction?

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


Question: What is Failure Policy?

Answer: f a i l u r e P o l i c y   d e f i n e s   h o w   m i s - c o n f i g u r a t i o n s   a n d   C E L   e x p r e s s i o n s   e v a l u a t i n g   t o   e r r o r   f r o m   t h e   a d m i s s i o n   p o l i c y   a r e   h a n d l e d .   A l l o w e d   v a l u e s   a r e   I g n o r e   o r   F a i l .   I g n o r e   m e a n s   t h a t   a n   e r r o r   c a l l i n g   t h e   V a l i d a t i n g A d m i s s i o n P o l i c y   i s   i g n o r e d   a n d   t h e   A P I   r e q u e s t   i s   a l l o w e d   t o   c o n t i n u e . F a i l   m e a n s   t h a t   a n   e r r o r   c a l l i n g   t h e   V a l i d a t i n g A d m i s s i o n P o l i c y   c a u s e s   t h e   a d m i s s i o n   t o   f a i l   a n d   t h e   A P I   r e q u e s t   t o   b e   r e j e c t e d .   N o t e   t h a t   t h e   f a i l u r e P o l i c y   i s   d e f i n e d   i n s i d e   V a l i d a t i n g A d m i s s i o n P o l i c y :   a p i V e r s i o n :   a d m i s s i o n r e g i s t r a t i o n . k 8 s . i o / v 1   k i n d :   V a l i d a t i n g A d m i s s i o n P o l i c y   s p e c :   . . .   f a i l u r e P o l i c y :   I g n o r e   #   T h e   d e f a u l t   i s   " F a i l "   v a l i d a t i o n s :   -   e x p r e s s i o n :   " o b j e c t . s p e c . x y z   = =   p a r a m s . x "


Question: What is Validation Expression?

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


Question: What is Validation expression examples?

Answer: R e a d   S u p p o r t e d   e v a l u a t i o n   o n   C E L   f o r   m o r e   i n f o r m a t i o n   a b o u t   C E L   r u l e s .   s p e c . v a l i d a t i o n [ i ] . r e a s o n   r e p r e s e n t s   a   m a c h i n e - r e a d a b l e   d e s c r i p t i o n   o f   w h y   t h i s   v a l i d a t i o n   f a i l e d .   I f   t h i s   i s   t h e   f i r s t   v a l i d a t i o n   i n   t h e   l i s t   t o   f a i l ,   t h i s   r e a s o n ,   a s   w e l l   a s   t h e   c o r r e s p o n d i n g   H T T P   r e s p o n s e   c o d e ,   a r e   u s e d   i n   t h e   H T T P   r e s p o n s e   t o   t h e   c l i e n t .   T h e   c u r r e n t l y   s u p p o r t e d   r e a s o n s   a r e :   U n a u t h o r i z e d ,   F o r b i d d e n ,   I n v a l i d ,   R e q u e s t E n t i t y T o o L a r g e .   I f   n o t   s e t ,   S t a t u s R e a s o n I n v a l i d   i s   u s e d   i n   t h e   r e s p o n s e   t o   t h e   c l i e n t .


Question: What is Matching requests: matchConditions?

Answer: Y o u   c a n   d e f i n e   m a t c h   c o n d i t i o n s   f o r   a   V a l i d a t i n g A d m i s s i o n P o l i c y   i f   y o u   n e e d   f i n e - g r a i n e d   r e q u e s t   f i l t e r i n g .   T h e s e   c o n d i t i o n s   a r e   u s e f u l   i f   y o u   f i n d   t h a t   m a t c h   r u l e s ,   o b j e c t S e l e c t o r s   a n d   n a m e s p a c e S e l e c t o r s   s t i l l   d o e s n ' t   p r o v i d e   t h e   f i l t e r i n g   y o u   w a n t .   M a t c h   c o n d i t i o n s   a r e   C E L   e x p r e s s i o n s .   A l l   m a t c h   c o n d i t i o n s   m u s t   e v a l u a t e   t o   t r u e   f o r   t h e   r e s o u r c e   t o   b e   e v a l u a t e d .   H e r e   i s   a n   e x a m p l e   i l l u s t r a t i n g   a   f e w   d i f f e r e n t   u s e s   f o r   m a t c h   c o n d i t i o n s :   a p i V e r s i o n :   a d m i s s i o n r e g i s t r a t i o n . k 8 s . i o / v 1   k i n d :   V a l i d a t i n g A d m i s s i o n P o l i c y   m e t a d a t a :   n a m e :   " d e m o - p o l i c y . e x a m p l e . c o m "   s p e c :   f a i l u r e P o l i c y :   F a i l   m a t c h C o n s t r a i n t s :   r e s o u r c e R u l e s :   -   a p i G r o u p s :   [ " * " ]   a p i V e r s i o n s :   [ " * " ]   o p e r a t i o n s :   [ " C R E A T E " ,   " U P D A T E " ]   r e s o u r c e s :   [ " * " ]   m a t c h C o n d i t i o n s :   -   n a m e :   ' e x c l u d e - l e a s e s '   #   E a c h   m a t c h   c o n d i t i o n   m u s t   h a v e   a   u n i q u e   n a m e   e x p r e s s i o n :   ' ! ( r e q u e s t . r e s o u r c e . g r o u p   = =   " c o o r d i n a t i o n . k 8 s . i o "   & &   r e q u e s t . r e s o u r c e . r e s o u r c e   = =   " l e a s e s " ) '   #   M a t c h   n o n - l e a s e   r e s o u r c e s .   -   n a m e :   ' e x c l u d e - k u b e l e t - r e q u e s t s '   e x p r e s s i o n :   ' ! ( " s y s t e m : n o d e s "   i n   r e


Question: What is Audit annotations?

Answer: a u d i t A n n o t a t i o n s   m a y   b e   u s e d   t o   i n c l u d e   a u d i t   a n n o t a t i o n s   i n   t h e   a u d i t   e v e n t   o f   t h e   A P I   r e q u e s t .   F o r   e x a m p l e ,   h e r e   i s   a n   a d m i s s i o n   p o l i c y   w i t h   a n   a u d i t   a n n o t a t i o n :   a p i V e r s i o n :   a d m i s s i o n r e g i s t r a t i o n . k 8 s . i o / v 1   k i n d :   V a l i d a t i n g A d m i s s i o n P o l i c y   m e t a d a t a :   n a m e :   " d e m o - p o l i c y . e x a m p l e . c o m "   s p e c :   f a i l u r e P o l i c y :   F a i l   m a t c h C o n s t r a i n t s :   r e s o u r c e R u l e s :   -   a p i G r o u p s :   [ " a p p s " ]   a p i V e r s i o n s :   [ " v 1 " ]   o p e r a t i o n s :   [ " C R E A T E " ,   " U P D A T E " ]   r e s o u r c e s :   [ " d e p l o y m e n t s " ]   v a l i d a t i o n s :   -   e x p r e s s i o n :   " o b j e c t . s p e c . r e p l i c a s   >   5 0 "   m e s s a g e E x p r e s s i o n :   " ' D e p l o y m e n t   s p e c . r e p l i c a s   s e t   t o   '   +   s t r i n g ( o b j e c t . s p e c . r e p l i c a s ) "   a u d i t A n n o t a t i o n s :   -   k e y :   " h i g h - r e p l i c a - c o u n t "   v a l u e E x p r e s s i o n :   " ' D e p l o y m e n t   s p e c . r e p l i c a s   s e t   t o   '   +   s t r i n g ( o b j e c t . s p e c . r e p l i c a s ) "   W h e n   a n   A P I   r e q u e s t   i s   v a l i d a t e d   w i t h   t h i s   a d m i s s i o n   p o l i c y ,   t h e   r e s u l t i n g   a u d i t   e v e n t   w i l l   l o o k   l i k e :   #   t h e   a u d i t   e v e n t   r e c o r d e d   {   " k i n d " :   " E v e n t " ,   " a p i V e r s i o n " :   " a u d i t . k 8 s . i o / v 1 " ,   " a n n o t a t i o n s " :   {   " d e m o - p o l i c y . e x a m p l e . c o m / h i g h - r e p l i c a - c o u n t " :   " D e p l o y m e n t   s p e c . r e p l i c a s   s e t   t o   1 2 8 "   #


Question: What is Message expression?

Answer: T o   r e t u r n   a   m o r e   f r i e n d l y   m e s s a g e   w h e n   t h e   p o l i c y   r e j e c t s   a   r e q u e s t ,   w e   c a n   u s e   a   C E L   e x p r e s s i o n   t o   c o m p o s i t e   a   m e s s a g e   w i t h   s p e c . v a l i d a t i o n s [ i ] . m e s s a g e E x p r e s s i o n .   S i m i l a r   t o   t h e   v a l i d a t i o n   e x p r e s s i o n ,   a   m e s s a g e   e x p r e s s i o n   h a s   a c c e s s   t o   o b j e c t ,   o l d O b j e c t ,   r e q u e s t ,   p a r a m s ,   a n d   n a m e s p a c e O b j e c t .   U n l i k e   v a l i d a t i o n s ,   m e s s a g e   e x p r e s s i o n   m u s t   e v a l u a t e   t o   a   s t r i n g .   F o r   e x a m p l e ,   t o   b e t t e r   i n f o r m   t h e   u s e r   o f   t h e   r e a s o n   o f   d e n i a l   w h e n   t h e   p o l i c y   r e f e r s   t o   a   p a r a m e t e r ,   w e   c a n   h a v e   t h e   f o l l o w i n g   v a l i d a t i o n :   a p i V e r s i o n :   a d m i s s i o n r e g i s t r a t i o n . k 8 s . i o / v 1   k i n d :   V a l i d a t i n g A d m i s s i o n P o l i c y   m e t a d a t a :   n a m e :   " d e p l o y - r e p l i c a - p o l i c y . e x a m p l e . c o m "   s p e c :   p a r a m K i n d :   a p i V e r s i o n :   r u l e s . e x a m p l e . c o m / v 1   k i n d :   R e p l i c a L i m i t   m a t c h C o n s t r a i n t s :   r e s o u r c e R u l e s :   -   a p i G r o u p s :   [ " a p p s " ]   a p i V e r s i o n s :   [ " v 1 " ]   o p e r a t i o n s :   [ " C R E A T E " ,   " U P D A T E " ]   r e s o u r c e s :   [ " d e p l o y m e n t s " ]   v a l i d a t i o n s :   -   e x p r e s s i o n :   " o b j e c t . s p e c . r e p l i c a s   < =   p a r a m s . m a x R e p l i c a s "   m e s s a g e E x p r e s s i o n :   " ' o b j e c t . s p e c . r e p l i c a s   m u s t   b e   n o   g r e a t e r   t h a n   '   +   s t r i n g ( p a r a m s . m a x R e p l i c a s )


Question: What is Type checking?

Answer: W h e n   a   p o l i c y   d e f i n i t i o n   i s   c r e a t e d   o r   u p d a t e d ,   t h e   v a l i d a t i o n   p r o c e s s   p a r s e s   t h e   e x p r e s s i o n s   i t   c o n t a i n s   a n d   r e p o r t s   a n y   s y n t a x   e r r o r s ,   r e j e c t i n g   t h e   d e f i n i t i o n   i f   a n y   e r r o r s   a r e   f o u n d .   A f t e r w a r d ,   t h e   r e f e r r e d   v a r i a b l e s   a r e   c h e c k e d   f o r   t y p e   e r r o r s ,   i n c l u d i n g   m i s s i n g   f i e l d s   a n d   t y p e   c o n f u s i o n ,   a g a i n s t   t h e   m a t c h e d   t y p e s   o f   s p e c . m a t c h C o n s t r a i n t s .   T h e   r e s u l t   o f   t y p e   c h e c k i n g   c a n   b e   r e t r i e v e d   f r o m   s t a t u s . t y p e C h e c k i n g .   T h e   p r e s e n c e   o f   s t a t u s . t y p e C h e c k i n g   i n d i c a t e s   t h e   c o m p l e t i o n   o f   t y p e   c h e c k i n g ,   a n d   a n   e m p t y   s t a t u s . t y p e C h e c k i n g   m e a n s   t h a t   n o   e r r o r s   w e r e   d e t e c t e d .   F o r   e x a m p l e ,   g i v e n   t h e   f o l l o w i n g   p o l i c y   d e f i n i t i o n :   a p i V e r s i o n :   a d m i s s i o n r e g i s t r a t i o n . k 8 s . i o / v 1   k i n d :   V a l i d a t i n g A d m i s s i o n P o l i c y   m e t a d a t a :   n a m e :   " d e p l o y - r e p l i c a - p o l i c y . e x a m p l e . c o m "   s p e c :   m a t c h C o n s t r a i n t s :   r e s o u r c e R u l e s :   -   a p i G r o u p s :   [ " a p p s " ]   a p i V e r s i o n s :   [ " v 1 " ]   o p e r a t i o n s :   [ " C R E A T E " ,   " U P D A T E " ]   r e s o u r c e s :   [ " d e p l o y m e n t s " ]   v a l i d a t i o n s :   -   e x p r e s s i o n :   " o b j e c t . r e p l i c a s   >   1 "   #   s h o u l d   b e   " o b j e c t . s p e c . r e p l i c a s   >   1 "   m e s s a g e :   " m u s t   b e   r e p l i c a


Question: What is Variable composition?

Answer: I f   a n   e x p r e s s i o n   g r o w s   t o o   c o m p l i c a t e d ,   o r   p a r t   o f   t h e   e x p r e s s i o n   i s   r e u s a b l e   a n d   c o m p u t a t i o n a l l y   e x p e n s i v e   t o   e v a l u a t e ,   y o u   c a n   e x t r a c t   s o m e   p a r t   o f   t h e   e x p r e s s i o n s   i n t o   v a r i a b l e s .   A   v a r i a b l e   i s   a   n a m e d   e x p r e s s i o n   t h a t   c a n   b e   r e f e r r e d   l a t e r   i n   v a r i a b l e s   i n   o t h e r   e x p r e s s i o n s .   s p e c :   v a r i a b l e s :   -   n a m e :   f o o   e x p r e s s i o n :   " ' f o o '   i n   o b j e c t . s p e c . m e t a d a t a . l a b e l s   ?   o b j e c t . s p e c . m e t a d a t a . l a b e l s [ ' f o o ' ]   :   ' d e f a u l t ' "   v a l i d a t i o n s :   -   e x p r e s s i o n :   v a r i a b l e s . f o o   = =   ' b a r '   A   v a r i a b l e   i s   l a z i l y   e v a l u a t e d   w h e n   i t   i s   f i r s t   r e f e r r e d .   A n y   e r r o r   t h a t   o c c u r s   d u r i n g   t h e   e v a l u a t i o n   w i l l   b e   r e p o r t e d   d u r i n g   t h e   e v a l u a t i o n   o f   t h e   r e f e r r i n g   e x p r e s s i o n .   B o t h   t h e   r e s u l t   a n d   p o t e n t i a l   e r r o r   a r e   m e m o r i z e d   a n d   c o u n t   o n l y   o n c e   t o w a r d s   t h e   r u n t i m e   c o s t .   T h e   o r d e r   o f   v a r i a b l e s   a r e   i m p o r t a n t   b e c a u s e   a   v a r i a b l e   c a n   r e f e r   t o   o t h e r   v a r i a b l e s   t h a t   a r e   d e f i n e d   b e f o r e   i t .   T h i s   o r d e r i n g   p r e v e n t s   c i r c u l a r   r e f e r e n c e s .   T h e   f o l l o w i n g   i s   a   m o r e   c o m p l e x   e x a m p l e   o f   e n f o r c i n g   t h a t   i m a g e   r e p o   n a m e s   m a t c h   t h e   e n v i r o n m e n t   d e f i n e d   i n   i t s   n a m e s p a c e


Question: What is API kinds exempt from admission validation?

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


Question: What is Running Multiple Instances of Your App?

Answer: Running Multiple Instances of Your AppObjectivesScale an existing app manually using kubectl.Scaling an applicationYou can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl create deployment command.Previously we created a Deployment, and then exposed it publicly via a Service. The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.If you haven't worked through the earlier sections, start from Using minikube to create a cluster.Scaling is accomplished by changing the number of replicas in a Deployment.Note:If you are trying this after the previous section, then you may have deleted the service you created, or have created a Service of type: NodePort. In this section, it is assumed that a service with type: LoadBalancer is created for the kubernetes-bootcamp Deployment.If you have not deleted the Service created in the previous section, first delete that Service and then run the following command to create a new Service with its type set to LoadBalancer:kubectl expose deployment/kubernetes-bootcamp --type="LoadBalancer" --port 8080 Scaling overviewScaling is accomplished by changing the number of replicas in a Deployment.Scaling out a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling will increase the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.Once you have multiple instances of an application running, you would be able to do Rolling updates without downtime. We'll cover that in the


Question: How does Running Multiple Instances of Your App work?

Answer: Running Multiple Instances of Your AppObjectivesScale an existing app manually using kubectl.Scaling an applicationYou can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl create deployment command.Previously we created a Deployment, and then exposed it publicly via a Service. The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.If you haven't worked through the earlier sections, start from Using minikube to create a cluster.Scaling is accomplished by changing the number of replicas in a Deployment.Note:If you are trying this after the previous section, then you may have deleted the service you created, or have created a Service of type: NodePort. In this section, it is assumed that a service with type: LoadBalancer is created for the kubernetes-bootcamp Deployment.If you have not deleted the Service created in the previous section, first delete that Service and then run the following command to create a new Service with its type set to LoadBalancer:kubectl expose deployment/kubernetes-bootcamp --type="LoadBalancer" --port 8080 Scaling overviewScaling is accomplished by changing the number of replicas in a Deployment.Scaling out a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling will increase the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.Once you have multiple instances of an application running, you would be able to do Rolling updates without downtime. We'll cover that in the


Question: When would you use Running Multiple Instances of Your App?

Answer: Running Multiple Instances of Your AppObjectivesScale an existing app manually using kubectl.Scaling an applicationYou can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl create deployment command.Previously we created a Deployment, and then exposed it publicly via a Service. The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.If you haven't worked through the earlier sections, start from Using minikube to create a cluster.Scaling is accomplished by changing the number of replicas in a Deployment.Note:If you are trying this after the previous section, then you may have deleted the service you created, or have created a Service of type: NodePort. In this section, it is assumed that a service with type: LoadBalancer is created for the kubernetes-bootcamp Deployment.If you have not deleted the Service created in the previous section, first delete that Service and then run the following command to create a new Service with its type set to LoadBalancer:kubectl expose deployment/kubernetes-bootcamp --type="LoadBalancer" --port 8080 Scaling overviewScaling is accomplished by changing the number of replicas in a Deployment.Scaling out a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling will increase the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.Once you have multiple instances of an application running, you would be able to do Rolling updates without downtime. We'll cover that in the


Question: What are the benefits of Running Multiple Instances of Your App?

Answer: Running Multiple Instances of Your AppObjectivesScale an existing app manually using kubectl.Scaling an applicationYou can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl create deployment command.Previously we created a Deployment, and then exposed it publicly via a Service. The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.If you haven't worked through the earlier sections, start from Using minikube to create a cluster.Scaling is accomplished by changing the number of replicas in a Deployment.Note:If you are trying this after the previous section, then you may have deleted the service you created, or have created a Service of type: NodePort. In this section, it is assumed that a service with type: LoadBalancer is created for the kubernetes-bootcamp Deployment.If you have not deleted the Service created in the previous section, first delete that Service and then run the following command to create a new Service with its type set to LoadBalancer:kubectl expose deployment/kubernetes-bootcamp --type="LoadBalancer" --port 8080 Scaling overviewScaling is accomplished by changing the number of replicas in a Deployment.Scaling out a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling will increase the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.Once you have multiple instances of an application running, you would be able to do Rolling updates without downtime. We'll cover that in the


Question: What is Objectives?

Answer: S c a l e   a n   e x i s t i n g   a p p   m a n u a l l y   u s i n g   k u b e c t l .


Question: What is Scaling an application?

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


Question: What is Note:?

Answer: I f   y o u   a r e   t r y i n g   t h i s   a f t e r   t h e   p r e v i o u s   s e c t i o n ,   t h e n   y o u   m a y   h a v e   d e l e t e d   t h e   s e r v i c e   y o u   c r e a t e d ,   o r   h a v e   c r e a t e d   a   S e r v i c e   o f   t y p e :   N o d e P o r t .   I n   t h i s   s e c t i o n ,   i t   i s   a s s u m e d   t h a t   a   s e r v i c e   w i t h   t y p e :   L o a d B a l a n c e r   i s   c r e a t e d   f o r   t h e   k u b e r n e t e s - b o o t c a m p   D e p l o y m e n t .   I f   y o u   h a v e   n o t   d e l e t e d   t h e   S e r v i c e   c r e a t e d   i n   t h e   p r e v i o u s   s e c t i o n ,   f i r s t   d e l e t e   t h a t   S e r v i c e   a n d   t h e n   r u n   t h e   f o l l o w i n g   c o m m a n d   t o   c r e a t e   a   n e w   S e r v i c e   w i t h   i t s   t y p e   s e t   t o   L o a d B a l a n c e r :   k u b e c t l   e x p o s e   d e p l o y m e n t / k u b e r n e t e s - b o o t c a m p   - - t y p e = " L o a d B a l a n c e r "   - - p o r t   8 0 8 0


Question: What is Scaling overview?

Answer: S c a l i n g   o u t   a   D e p l o y m e n t   w i l l   e n s u r e   n e w   P o d s   a r e   c r e a t e d   a n d   s c h e d u l e d   t o   N o d e s   w i t h   a v a i l a b l e   r e s o u r c e s .   S c a l i n g   w i l l   i n c r e a s e   t h e   n u m b e r   o f   P o d s   t o   t h e   n e w   d e s i r e d   s t a t e .   K u b e r n e t e s   a l s o   s u p p o r t s   a u t o s c a l i n g   o f   P o d s ,   b u t   i t   i s   o u t s i d e   o f   t h e   s c o p e   o f   t h i s   t u t o r i a l .   S c a l i n g   t o   z e r o   i s   a l s o   p o s s i b l e ,   a n d   i t   w i l l   t e r m i n a t e   a l l   P o d s   o f   t h e   s p e c i f i e d   D e p l o y m e n t .   R u n n i n g   m u l t i p l e   i n s t a n c e s   o f   a n   a p p l i c a t i o n   w i l l   r e q u i r e   a   w a y   t o   d i s t r i b u t e   t h e   t r a f f i c   t o   a l l   o f   t h e m .   S e r v i c e s   h a v e   a n   i n t e g r a t e d   l o a d - b a l a n c e r   t h a t   w i l l   d i s t r i b u t e   n e t w o r k   t r a f f i c   t o   a l l   P o d s   o f   a n   e x p o s e d   D e p l o y m e n t .   S e r v i c e s   w i l l   m o n i t o r   c o n t i n u o u s l y   t h e   r u n n i n g   P o d s   u s i n g   e n d p o i n t s ,   t o   e n s u r e   t h e   t r a f f i c   i s   s e n t   o n l y   t o   a v a i l a b l e   P o d s .   O n c e   y o u   h a v e   m u l t i p l e   i n s t a n c e s   o f   a n   a p p l i c a t i o n   r u n n i n g ,   y o u   w o u l d   b e   a b l e   t o   d o   R o l l i n g   u p d a t e s   w i t h o u t   d o w n t i m e .   W e ' l l   c o v e r   t h a t   i n   t h e   n e x t   s e c t i o n   o f   t h e   t u t o r i a l .   N o w ,   l e t ' s   g o   t o   t h e   t e r m i n a l   a n d   s c a l e   o u r   a p p l i c a t i o n .


Question: What is Scaling a Deployment?

Answer: T o   l i s t   y o u r   D e p l o y m e n t s ,   u s e   t h e   g e t   d e p l o y m e n t s   s u b c o m m a n d :   k u b e c t l   g e t   d e p l o y m e n t s   T h e   o u t p u t   s h o u l d   b e   s i m i l a r   t o :   N A M E   R E A D Y   U P - T O - D A T E   A V A I L A B L E   A G E   k u b e r n e t e s - b o o t c a m p   1 / 1   1   1   1 1 m   W e   s h o u l d   h a v e   1   P o d .   I f   n o t ,   r u n   t h e   c o m m a n d   a g a i n .   T h i s   s h o w s :   N A M E   l i s t s   t h e   n a m e s   o f   t h e   D e p l o y m e n t s   i n   t h e   c l u s t e r . R E A D Y   s h o w s   t h e   r a t i o   o f   C U R R E N T / D E S I R E D   r e p l i c a s U P - T O - D A T E   d i s p l a y s   t h e   n u m b e r   o f   r e p l i c a s   t h a t   h a v e   b e e n   u p d a t e d   t o   a c h i e v e   t h e   d e s i r e d   s t a t e . A V A I L A B L E   d i s p l a y s   h o w   m a n y   r e p l i c a s   o f   t h e   a p p l i c a t i o n   a r e   a v a i l a b l e   t o   y o u r   u s e r s . A G E   d i s p l a y s   t h e   a m o u n t   o f   t i m e   t h a t   t h e   a p p l i c a t i o n   h a s   b e e n   r u n n i n g .   T o   s e e   t h e   R e p l i c a S e t   c r e a t e d   b y   t h e   D e p l o y m e n t ,   r u n :   k u b e c t l   g e t   r s   N o t i c e   t h a t   t h e   n a m e   o f   t h e   R e p l i c a S e t   i s   a l w a y s   f o r m a t t e d   a s   [ D E P L O Y M E N T - N A M E ] - [ R A N D O M - S T R I N G ] .   T h e   r a n d o m   s t r i n g   i s   r a n d o m l y   g e n e r a t e d   a n d   u s e s   t h e   p o d - t e m p l a t e - h a s h   a s   a   s e e d .   T w o   i m p o r t a n t   c o l u m n s   o f   t h i s   o u t p u t   a r e :   D E S I R E D   d i s p l a y s   t h e   d e s i r e d   n u m b e r   o f   r e p l i c a s   o f   t h e   a p p l i c a t i o n ,   w h i c h   y o u   d e f i n e   w h e n   y o u   c r e a t e   t h e


Question: What is Load Balancing?

Answer: L e t ' s   c h e c k   t h a t   t h e   S e r v i c e   i s   l o a d - b a l a n c i n g   t h e   t r a f f i c .   T o   f i n d   o u t   t h e   e x p o s e d   I P   a n d   P o r t   w e   c a n   u s e   d e s c r i b e   s e r v i c e   a s   w e   l e a r n e d   i n   t h e   p r e v i o u s   p a r t   o f   t h e   t u t o r i a l :   k u b e c t l   d e s c r i b e   s e r v i c e s / k u b e r n e t e s - b o o t c a m p   C r e a t e   a n   e n v i r o n m e n t   v a r i a b l e   c a l l e d   N O D E _ P O R T   t h a t   h a s   a   v a l u e   a s   t h e   N o d e   p o r t :   e x p o r t   N O D E _ P O R T = " $ ( k u b e c t l   g e t   s e r v i c e s / k u b e r n e t e s - b o o t c a m p   - o   g o - t e m p l a t e = ' { { ( i n d e x   . s p e c . p o r t s   0 ) . n o d e P o r t } } ' ) "   e c h o   N O D E _ P O R T = $ N O D E _ P O R T   N e x t ,   w e ’ l l   d o   a   c u r l   t o   t h e   e x p o s e d   I P   a d d r e s s   a n d   p o r t .   E x e c u t e   t h e   c o m m a n d   m u l t i p l e   t i m e s :   c u r l   h t t p : / / " $ ( m i n i k u b e   i p ) : $ N O D E _ P O R T "   W e   h i t   a   d i f f e r e n t   P o d   w i t h   e v e r y   r e q u e s t .   T h i s   d e m o n s t r a t e s   t h a t   t h e   l o a d - b a l a n c i n g   i s   w o r k i n g .   T h e   o u t p u t   s h o u l d   b e   s i m i l a r   t o :   H e l l o   K u b e r n e t e s   b o o t c a m p !   |   R u n n i n g   o n :   k u b e r n e t e s - b o o t c a m p - 6 4 4 c 5 6 8 7 f 4 - w p 6 7 j   |   v = 1   H e l l o   K u b e r n e t e s   b o o t c a m p !   |   R u n n i n g   o n :   k u b e r n e t e s - b o o t c a m p - 6 4 4 c 5 6 8 7 f 4 - h s 9 d j   |   v = 1   H e l l o   K u b e r n e t e s   b o o t c a m p !   |   R u n n i n g   o n :   k u b e r n e t e s - b o o t c a m p - 6 4 4 c 5 6 8 7 f 4 - 4 h j v f   |   v = 1   H e l l o   K u b e r n e t e s   b o o t c a m p !   |   R u n n i n g   o


Question: What is Note:?

Answer: I f   y o u ' r e   r u n n i n g   m i n i k u b e   w i t h   D o c k e r   D e s k t o p   a s   t h e   c o n t a i n e r   d r i v e r ,   a   m i n i k u b e   t u n n e l   i s   n e e d e d .   T h i s   i s   b e c a u s e   c o n t a i n e r s   i n s i d e   D o c k e r   D e s k t o p   a r e   i s o l a t e d   f r o m   y o u r   h o s t   c o m p u t e r .   I n   a   s e p a r a t e   t e r m i n a l   w i n d o w ,   e x e c u t e :   m i n i k u b e   s e r v i c e   k u b e r n e t e s - b o o t c a m p   - - u r l   T h e   o u t p u t   l o o k s   l i k e   t h i s :   h t t p : / / 1 2 7 . 0 . 0 . 1 : 5 1 0 8 2   !   B e c a u s e   y o u   a r e   u s i n g   a   D o c k e r   d r i v e r   o n   d a r w i n ,   t h e   t e r m i n a l   n e e d s   t o   b e   o p e n   t o   r u n   i t .   T h e n   u s e   t h e   g i v e n   U R L   t o   a c c e s s   t h e   a p p :   c u r l   1 2 7 . 0 . 0 . 1 : 5 1 0 8 2


Question: What is Scale Down?

Answer: T o   s c a l e   d o w n   t h e   D e p l o y m e n t   t o   2   r e p l i c a s ,   r u n   a g a i n   t h e   s c a l e   s u b c o m m a n d :   k u b e c t l   s c a l e   d e p l o y m e n t s / k u b e r n e t e s - b o o t c a m p   - - r e p l i c a s = 2   L i s t   t h e   D e p l o y m e n t s   t o   c h e c k   i f   t h e   c h a n g e   w a s   a p p l i e d   w i t h   t h e   g e t   d e p l o y m e n t s   s u b c o m m a n d :   k u b e c t l   g e t   d e p l o y m e n t s   T h e   n u m b e r   o f   r e p l i c a s   d e c r e a s e d   t o   2 .   L i s t   t h e   n u m b e r   o f   P o d s ,   w i t h   g e t   p o d s :   k u b e c t l   g e t   p o d s   - o   w i d e   T h i s   c o n f i r m s   t h a t   2   P o d s   w e r e   t e r m i n a t e d .


Question: What is What's next?

Answer: T u t o r i a l   P e r f o r m i n g   a   R o l l i n g   U p d a t e . L e a r n   m o r e   a b o u t   R e p l i c a S e t . L e a r n   m o r e   a b o u t   A u t o s c a l i n g .


Question: What is kubectl create secret?

Answer: kubectl create secretSynopsisCreate a secret with specified type.A docker-registry type secret is for accessing a container registry.A generic type secret indicate an Opaque secret type.A tls type secret holds TLS certificate and its associated key.kubectl create secret (docker-registry | generic | tls) Options-h, --helphelp for secretParent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction--storage-driver-db string Default: "cadvisor"database name--storage-driver-host string Default: "localhost:8086"database host:port--storage-driver-password string Default: "root"database password--storage-driver-secureuse secure connection with database--storage-driver-table string Default: "stats"table name--storage-driver-user string Default: "root"database username--tls-server-name stringServer name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used--token stringBearer token for authentication to the API server--user stringThe name o


Question: How does kubectl create secret work?

Answer: kubectl create secretSynopsisCreate a secret with specified type.A docker-registry type secret is for accessing a container registry.A generic type secret indicate an Opaque secret type.A tls type secret holds TLS certificate and its associated key.kubectl create secret (docker-registry | generic | tls) Options-h, --helphelp for secretParent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction--storage-driver-db string Default: "cadvisor"database name--storage-driver-host string Default: "localhost:8086"database host:port--storage-driver-password string Default: "root"database password--storage-driver-secureuse secure connection with database--storage-driver-table string Default: "stats"table name--storage-driver-user string Default: "root"database username--tls-server-name stringServer name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used--token stringBearer token for authentication to the API server--user stringThe name o


Question: When would you use kubectl create secret?

Answer: kubectl create secretSynopsisCreate a secret with specified type.A docker-registry type secret is for accessing a container registry.A generic type secret indicate an Opaque secret type.A tls type secret holds TLS certificate and its associated key.kubectl create secret (docker-registry | generic | tls) Options-h, --helphelp for secretParent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction--storage-driver-db string Default: "cadvisor"database name--storage-driver-host string Default: "localhost:8086"database host:port--storage-driver-password string Default: "root"database password--storage-driver-secureuse secure connection with database--storage-driver-table string Default: "stats"table name--storage-driver-user string Default: "root"database username--tls-server-name stringServer name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used--token stringBearer token for authentication to the API server--user stringThe name o


Question: What are the benefits of kubectl create secret?

Answer: kubectl create secretSynopsisCreate a secret with specified type.A docker-registry type secret is for accessing a container registry.A generic type secret indicate an Opaque secret type.A tls type secret holds TLS certificate and its associated key.kubectl create secret (docker-registry | generic | tls) Options-h, --helphelp for secretParent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction--storage-driver-db string Default: "cadvisor"database name--storage-driver-host string Default: "localhost:8086"database host:port--storage-driver-password string Default: "root"database password--storage-driver-secureuse secure connection with database--storage-driver-table string Default: "stats"table name--storage-driver-user string Default: "root"database username--tls-server-name stringServer name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used--token stringBearer token for authentication to the API server--user stringThe name o


Question: What is Synopsis?

Answer: C r e a t e   a   s e c r e t   w i t h   s p e c i f i e d   t y p e .   A   d o c k e r - r e g i s t r y   t y p e   s e c r e t   i s   f o r   a c c e s s i n g   a   c o n t a i n e r   r e g i s t r y .   A   g e n e r i c   t y p e   s e c r e t   i n d i c a t e   a n   O p a q u e   s e c r e t   t y p e .   A   t l s   t y p e   s e c r e t   h o l d s   T L S   c e r t i f i c a t e   a n d   i t s   a s s o c i a t e d   k e y .   k u b e c t l   c r e a t e   s e c r e t   ( d o c k e r - r e g i s t r y   |   g e n e r i c   |   t l s )


Question: What is Options?

Answer: h e l p   f o r   s e c r e t


Question: What is Parent Options Inherited?

Answer: U s e r n a m e   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   U s e r   c o u l d   b e   a   r e g u l a r   u s e r   o r   a   s e r v i c e   a c c o u n t   i n   a   n a m e s p a c e .   G r o u p   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n ,   t h i s   f l a g   c a n   b e   r e p e a t e d   t o   s p e c i f y   m u l t i p l e   g r o u p s .   U I D   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   D e f a u l t   c a c h e   d i r e c t o r y   P a t h   t o   a   c e r t   f i l e   f o r   t h e   c e r t i f i c a t e   a u t h o r i t y   P a t h   t o   a   c l i e n t   c e r t i f i c a t e   f i l e   f o r   T L S   P a t h   t o   a   c l i e n t   k e y   f i l e   f o r   T L S   T h e   n a m e   o f   t h e   k u b e c o n f i g   c l u s t e r   t o   u s e   T h e   n a m e   o f   t h e   k u b e c o n f i g   c o n t e x t   t o   u s e   I f   t r u e ,   o p t - o u t   o f   r e s p o n s e   c o m p r e s s i o n   f o r   a l l   r e q u e s t s   t o   t h e   s e r v e r   I f   t r u e ,   t h e   s e r v e r ' s   c e r t i f i c a t e   w i l l   n o t   b e   c h e c k e d   f o r   v a l i d i t y .   T h i s   w i l l   m a k e   y o u r   H T T P S   c o n n e c t i o n s   i n s e c u r e   P a t h   t o   t h e   k u b e c o n f i g   f i l e   t o   u s e   f o r   C L I   r e q u e s t s .   P a t h   t o   t h e   k u b e r c   f i l e   t o   u s e   f o r   p r e f e r e n c e s .   T h i s   c a n   b e   d i s a b l e d   b y   e x p o r t i n g   K U B E C T L _ K U B E R C = f a l s e   f e a t u r e   g a t e   o r   t u r n i n g   o f f   t h e   f e a t u r e   K U B E R C = o f f .   R e q u i r e   s e r v e r   v e r s i o n   t o   m a t c h   c l i e n t   v e r s i o n   I f   p r e s e n t ,   t h e   n a m e s p a c e   s c o p e   f o r   t h i s   C L I   r e q u e s t   P a s s w o r d   f o r   b a s i c   a u t h e n t i c a t


Question: What is See Also?

Answer: k u b e c t l   c r e a t e   -   C r e a t e   a   r e s o u r c e   f r o m   a   f i l e   o r   f r o m   s t d i n k u b e c t l   c r e a t e   s e c r e t   d o c k e r - r e g i s t r y   -   C r e a t e   a   s e c r e t   f o r   u s e   w i t h   a   D o c k e r   r e g i s t r y k u b e c t l   c r e a t e   s e c r e t   g e n e r i c   -   C r e a t e   a   s e c r e t   f r o m   a   l o c a l   f i l e ,   d i r e c t o r y ,   o r   l i t e r a l   v a l u e k u b e c t l   c r e a t e   s e c r e t   t l s   -   C r e a t e   a   T L S   s e c r e t   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 Status?

Answer: StatusStatus is a return value for calls that don't return other objects.import "k8s.io/apimachinery/pkg/apis/meta/v1"Status is a return value for calls that don't return other objects.apiVersion (string)APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourcescode (int32)Suggested HTTP return code for this status, 0 if not set.details (StatusDetails)Atomic: will be replaced during a mergeExtended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.details.causes ([]StatusCause)Atomic: will be replaced during a mergeThe Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.details.causes.field (string)The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.Examples: "name" - the field "name" on the current resource "items[0].name" - the field "name" on the first array entry in "items"details.causes.message (string)A human-readable description of the cause of the error. This field may be presented as-is to a reader.details.causes.reason (string)A machine-readable description of the cause of the error. If this value is empty there is no information available.details.group (string)The group attribute of the resource associated with the status StatusReason.details.kind (string)The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsdetails.name (string)The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).details.retryAfterSeconds (int32)If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking th


Question: How does Status work?

Answer: StatusStatus is a return value for calls that don't return other objects.import "k8s.io/apimachinery/pkg/apis/meta/v1"Status is a return value for calls that don't return other objects.apiVersion (string)APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourcescode (int32)Suggested HTTP return code for this status, 0 if not set.details (StatusDetails)Atomic: will be replaced during a mergeExtended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.details.causes ([]StatusCause)Atomic: will be replaced during a mergeThe Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.details.causes.field (string)The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.Examples: "name" - the field "name" on the current resource "items[0].name" - the field "name" on the first array entry in "items"details.causes.message (string)A human-readable description of the cause of the error. This field may be presented as-is to a reader.details.causes.reason (string)A machine-readable description of the cause of the error. If this value is empty there is no information available.details.group (string)The group attribute of the resource associated with the status StatusReason.details.kind (string)The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsdetails.name (string)The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).details.retryAfterSeconds (int32)If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking th


Question: When would you use Status?

Answer: StatusStatus is a return value for calls that don't return other objects.import "k8s.io/apimachinery/pkg/apis/meta/v1"Status is a return value for calls that don't return other objects.apiVersion (string)APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourcescode (int32)Suggested HTTP return code for this status, 0 if not set.details (StatusDetails)Atomic: will be replaced during a mergeExtended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.details.causes ([]StatusCause)Atomic: will be replaced during a mergeThe Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.details.causes.field (string)The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.Examples: "name" - the field "name" on the current resource "items[0].name" - the field "name" on the first array entry in "items"details.causes.message (string)A human-readable description of the cause of the error. This field may be presented as-is to a reader.details.causes.reason (string)A machine-readable description of the cause of the error. If this value is empty there is no information available.details.group (string)The group attribute of the resource associated with the status StatusReason.details.kind (string)The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsdetails.name (string)The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).details.retryAfterSeconds (int32)If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking th


Question: What are the benefits of Status?

Answer: StatusStatus is a return value for calls that don't return other objects.import "k8s.io/apimachinery/pkg/apis/meta/v1"Status is a return value for calls that don't return other objects.apiVersion (string)APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourcescode (int32)Suggested HTTP return code for this status, 0 if not set.details (StatusDetails)Atomic: will be replaced during a mergeExtended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.details.causes ([]StatusCause)Atomic: will be replaced during a mergeThe Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.details.causes.field (string)The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.Examples: "name" - the field "name" on the current resource "items[0].name" - the field "name" on the first array entry in "items"details.causes.message (string)A human-readable description of the cause of the error. This field may be presented as-is to a reader.details.causes.reason (string)A machine-readable description of the cause of the error. If this value is empty there is no information available.details.group (string)The group attribute of the resource associated with the status StatusReason.details.kind (string)The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsdetails.name (string)The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).details.retryAfterSeconds (int32)If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking th


Question: What is Status?

Answer: i m p o r t   " k 8 s . i o / a p i m a c h i n e r y / p k g / a p i s / m e t a / v 1 "   S t a t u s   i s   a   r e t u r n   v a l u e   f o r   c a l l s   t h a t   d o n ' t   r e t u r n   o t h e r   o b j e c t s .   a p i V e r s i o n   ( s t r i n g ) A P I V e r s i o n   d e f i n e s   t h e   v e r s i o n e d   s c h e m a   o f   t h i s   r e p r e s e n t a t i o n   o f   a n   o b j e c t .   S e r v e r s   s h o u l d   c o n v e r t   r e c o g n i z e d   s c h e m a s   t o   t h e   l a t e s t   i n t e r n a l   v a l u e ,   a n d   m a y   r e j e c t   u n r e c o g n i z e d   v a l u e s .   M o r e   i n f o :   h t t p s : / / g i t . k 8 s . i o / c o m m u n i t y / c o n t r i b u t o r s / d e v e l / s i g - a r c h i t e c t u r e / a p i - c o n v e n t i o n s . m d # r e s o u r c e s c o d e   ( i n t 3 2 ) S u g g e s t e d   H T T P   r e t u r n   c o d e   f o r   t h i s   s t a t u s ,   0   i f   n o t   s e t . d e t a i l s   ( S t a t u s D e t a i l s ) 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 E x t e n d e d   d a t a   a s s o c i a t e d   w i t h   t h e   r e a s o n .   E a c h   r e a s o n   m a y   d e f i n e   i t s   o w n   e x t e n d e d   d e t a i l s .   T h i s   f i e l d   i s   o p t i o n a l   a n d   t h e   d a t a   r e t u r n e d   i s   n o t   g u a r a n t e e d   t o   c o n f o r m   t o   a n y   s c h e m a   e x c e p t   t h a t   d e f i n e d   b y   t h e   r e a s o n   t y p e . S t a t u s D e t a i l s   i s   a   s e t   o f   a d d i t i o n a l   p r o p e r t i e s   t h a t   M A Y   b e   s e t   b y   t h e   s e r v e r   t o   p r o v i d e   a d d i t i o n a l   i n f o r m a t i o n   a b o u t   a   r e s p o n s e .   T h e   R e a s o n   f i e l d   o f   a   S t a t u s   o b j e c t   d e f i n e s   w h a t   a t t r i b u t e s   w i l l   b e   s e t .   C l i e n t s   m u s t   i g n o r e   f i e l d s


Question: What is kubectl debug?

Answer: kubectl debugSynopsisDebug cluster resources using interactive debugging containers.'debug' provides automation for common debugging tasks for cluster objects identified by resource and name. Pods will be used by default if no resource is specified.The action taken by 'debug' varies depending on what resource is specified. Supported actions include:Workload: Create a copy of an existing pod with certain attributes changed, for example changing the image tag to a new version.Workload: Add an ephemeral container to an already running pod, for example to add debugging utilities without restarting the pod.Node: Create a new pod that runs in the node's host namespaces and can access the node's filesystem.Note: When a non-root user is configured for the entire target Pod, some capabilities granted by debug profile may not work.kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ] Examples # Create an interactive debugging session in pod mypod and immediately attach to it. kubectl debug mypod -it --image=busybox # Create an interactive debugging session for the pod in the file pod.yaml and immediately attach to it. # (requires the EphemeralContainers feature to be enabled in the cluster) kubectl debug -f pod.yaml -it --image=busybox # Create a debug container named debugger using a custom automated debugging image. kubectl debug --image=myproj/debug-tools -c debugger mypod # Create a copy of mypod adding a debug container and attach to it kubectl debug mypod -it --image=busybox --copy-to=my-debugger # Create a copy of mypod changing the command of mycontainer kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh # Create a copy of mypod changing all container images to busybox kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox # Create a copy of mypod adding a debug container and changing container images kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug # Create an interactive debugging session on a node and immediately attach to it. # The container will run in the host namespaces and the host's filesystem will be mounted at /host kubectl debug node/mynode -it --image=busybox Options--arguments-onlyIf specified, everything after -- will be passed to the new container as Args instead of Command.--attachIf true, wait for the container to start running, and then attach as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true.-c, --container stringContainer name to use for debug container.--copy-to stringCreate a copy of the target Pod with this name.--custom stringPath to a JSON or YAML file containing a partial container spec to customize built-in debug profiles.--env stringToString Default: []Environment variables to set in the container.-f, --filename stringsidentifying the resource to debug-h, --helphelp for debug--image stringContainer image to use for debug container.--image-pu


Question: How does kubectl debug work?

Answer: kubectl debugSynopsisDebug cluster resources using interactive debugging containers.'debug' provides automation for common debugging tasks for cluster objects identified by resource and name. Pods will be used by default if no resource is specified.The action taken by 'debug' varies depending on what resource is specified. Supported actions include:Workload: Create a copy of an existing pod with certain attributes changed, for example changing the image tag to a new version.Workload: Add an ephemeral container to an already running pod, for example to add debugging utilities without restarting the pod.Node: Create a new pod that runs in the node's host namespaces and can access the node's filesystem.Note: When a non-root user is configured for the entire target Pod, some capabilities granted by debug profile may not work.kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ] Examples # Create an interactive debugging session in pod mypod and immediately attach to it. kubectl debug mypod -it --image=busybox # Create an interactive debugging session for the pod in the file pod.yaml and immediately attach to it. # (requires the EphemeralContainers feature to be enabled in the cluster) kubectl debug -f pod.yaml -it --image=busybox # Create a debug container named debugger using a custom automated debugging image. kubectl debug --image=myproj/debug-tools -c debugger mypod # Create a copy of mypod adding a debug container and attach to it kubectl debug mypod -it --image=busybox --copy-to=my-debugger # Create a copy of mypod changing the command of mycontainer kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh # Create a copy of mypod changing all container images to busybox kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox # Create a copy of mypod adding a debug container and changing container images kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug # Create an interactive debugging session on a node and immediately attach to it. # The container will run in the host namespaces and the host's filesystem will be mounted at /host kubectl debug node/mynode -it --image=busybox Options--arguments-onlyIf specified, everything after -- will be passed to the new container as Args instead of Command.--attachIf true, wait for the container to start running, and then attach as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true.-c, --container stringContainer name to use for debug container.--copy-to stringCreate a copy of the target Pod with this name.--custom stringPath to a JSON or YAML file containing a partial container spec to customize built-in debug profiles.--env stringToString Default: []Environment variables to set in the container.-f, --filename stringsidentifying the resource to debug-h, --helphelp for debug--image stringContainer image to use for debug container.--image-pu


Question: When would you use kubectl debug?

Answer: kubectl debugSynopsisDebug cluster resources using interactive debugging containers.'debug' provides automation for common debugging tasks for cluster objects identified by resource and name. Pods will be used by default if no resource is specified.The action taken by 'debug' varies depending on what resource is specified. Supported actions include:Workload: Create a copy of an existing pod with certain attributes changed, for example changing the image tag to a new version.Workload: Add an ephemeral container to an already running pod, for example to add debugging utilities without restarting the pod.Node: Create a new pod that runs in the node's host namespaces and can access the node's filesystem.Note: When a non-root user is configured for the entire target Pod, some capabilities granted by debug profile may not work.kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ] Examples # Create an interactive debugging session in pod mypod and immediately attach to it. kubectl debug mypod -it --image=busybox # Create an interactive debugging session for the pod in the file pod.yaml and immediately attach to it. # (requires the EphemeralContainers feature to be enabled in the cluster) kubectl debug -f pod.yaml -it --image=busybox # Create a debug container named debugger using a custom automated debugging image. kubectl debug --image=myproj/debug-tools -c debugger mypod # Create a copy of mypod adding a debug container and attach to it kubectl debug mypod -it --image=busybox --copy-to=my-debugger # Create a copy of mypod changing the command of mycontainer kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh # Create a copy of mypod changing all container images to busybox kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox # Create a copy of mypod adding a debug container and changing container images kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug # Create an interactive debugging session on a node and immediately attach to it. # The container will run in the host namespaces and the host's filesystem will be mounted at /host kubectl debug node/mynode -it --image=busybox Options--arguments-onlyIf specified, everything after -- will be passed to the new container as Args instead of Command.--attachIf true, wait for the container to start running, and then attach as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true.-c, --container stringContainer name to use for debug container.--copy-to stringCreate a copy of the target Pod with this name.--custom stringPath to a JSON or YAML file containing a partial container spec to customize built-in debug profiles.--env stringToString Default: []Environment variables to set in the container.-f, --filename stringsidentifying the resource to debug-h, --helphelp for debug--image stringContainer image to use for debug container.--image-pu


Question: What are the benefits of kubectl debug?

Answer: kubectl debugSynopsisDebug cluster resources using interactive debugging containers.'debug' provides automation for common debugging tasks for cluster objects identified by resource and name. Pods will be used by default if no resource is specified.The action taken by 'debug' varies depending on what resource is specified. Supported actions include:Workload: Create a copy of an existing pod with certain attributes changed, for example changing the image tag to a new version.Workload: Add an ephemeral container to an already running pod, for example to add debugging utilities without restarting the pod.Node: Create a new pod that runs in the node's host namespaces and can access the node's filesystem.Note: When a non-root user is configured for the entire target Pod, some capabilities granted by debug profile may not work.kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ] Examples # Create an interactive debugging session in pod mypod and immediately attach to it. kubectl debug mypod -it --image=busybox # Create an interactive debugging session for the pod in the file pod.yaml and immediately attach to it. # (requires the EphemeralContainers feature to be enabled in the cluster) kubectl debug -f pod.yaml -it --image=busybox # Create a debug container named debugger using a custom automated debugging image. kubectl debug --image=myproj/debug-tools -c debugger mypod # Create a copy of mypod adding a debug container and attach to it kubectl debug mypod -it --image=busybox --copy-to=my-debugger # Create a copy of mypod changing the command of mycontainer kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh # Create a copy of mypod changing all container images to busybox kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox # Create a copy of mypod adding a debug container and changing container images kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug # Create an interactive debugging session on a node and immediately attach to it. # The container will run in the host namespaces and the host's filesystem will be mounted at /host kubectl debug node/mynode -it --image=busybox Options--arguments-onlyIf specified, everything after -- will be passed to the new container as Args instead of Command.--attachIf true, wait for the container to start running, and then attach as if 'kubectl attach ...' were called. Default false, unless '-i/--stdin' is set, in which case the default is true.-c, --container stringContainer name to use for debug container.--copy-to stringCreate a copy of the target Pod with this name.--custom stringPath to a JSON or YAML file containing a partial container spec to customize built-in debug profiles.--env stringToString Default: []Environment variables to set in the container.-f, --filename stringsidentifying the resource to debug-h, --helphelp for debug--image stringContainer image to use for debug container.--image-pu


Question: What is Synopsis?

Answer: D e b u g   c l u s t e r   r e s o u r c e s   u s i n g   i n t e r a c t i v e   d e b u g g i n g   c o n t a i n e r s .   ' d e b u g '   p r o v i d e s   a u t o m a t i o n   f o r   c o m m o n   d e b u g g i n g   t a s k s   f o r   c l u s t e r   o b j e c t s   i d e n t i f i e d   b y   r e s o u r c e   a n d   n a m e .   P o d s   w i l l   b e   u s e d   b y   d e f a u l t   i f   n o   r e s o u r c e   i s   s p e c i f i e d .   T h e   a c t i o n   t a k e n   b y   ' d e b u g '   v a r i e s   d e p e n d i n g   o n   w h a t   r e s o u r c e   i s   s p e c i f i e d .   S u p p o r t e d   a c t i o n s   i n c l u d e :   W o r k l o a d :   C r e a t e   a   c o p y   o f   a n   e x i s t i n g   p o d   w i t h   c e r t a i n   a t t r i b u t e s   c h a n g e d ,   f o r   e x a m p l e   c h a n g i n g   t h e   i m a g e   t a g   t o   a   n e w   v e r s i o n . W o r k l o a d :   A d d   a n   e p h e m e r a l   c o n t a i n e r   t o   a n   a l r e a d y   r u n n i n g   p o d ,   f o r   e x a m p l e   t o   a d d   d e b u g g i n g   u t i l i t i e s   w i t h o u t   r e s t a r t i n g   t h e   p o d . N o d e :   C r e a t e   a   n e w   p o d   t h a t   r u n s   i n   t h e   n o d e ' s   h o s t   n a m e s p a c e s   a n d   c a n   a c c e s s   t h e   n o d e ' s   f i l e s y s t e m .   N o t e :   W h e n   a   n o n - r o o t   u s e r   i s   c o n f i g u r e d   f o r   t h e   e n t i r e   t a r g e t   P o d ,   s o m e   c a p a b i l i t i e s   g r a n t e d   b y   d e b u g   p r o f i l e   m a y   n o t   w o r k .   k u b e c t l   d e b u g   ( P O D   |   T Y P E [ [ . V E R S I O N ] . G R O U P ] / N A M E )   [   - -   C O M M A N D   [ a r g s . . . ]   ]


Question: What is Examples?

Answer: #   C r e a t e   a n   i n t e r a c t i v e   d e b u g g i n g   s e s s i o n   i n   p o d   m y p o d   a n d   i m m e d i a t e l y   a t t a c h   t o   i t .   k u b e c t l   d e b u g   m y p o d   - i t   - - i m a g e = b u s y b o x   #   C r e a t e   a n   i n t e r a c t i v e   d e b u g g i n g   s e s s i o n   f o r   t h e   p o d   i n   t h e   f i l e   p o d . y a m l   a n d   i m m e d i a t e l y   a t t a c h   t o   i t .   #   ( r e q u i r e s   t h e   E p h e m e r a l C o n t a i n e r s   f e a t u r e   t o   b e   e n a b l e d   i n   t h e   c l u s t e r )   k u b e c t l   d e b u g   - f   p o d . y a m l   - i t   - - i m a g e = b u s y b o x   #   C r e a t e   a   d e b u g   c o n t a i n e r   n a m e d   d e b u g g e r   u s i n g   a   c u s t o m   a u t o m a t e d   d e b u g g i n g   i m a g e .   k u b e c t l   d e b u g   - - i m a g e = m y p r o j / d e b u g - t o o l s   - c   d e b u g g e r   m y p o d   #   C r e a t e   a   c o p y   o f   m y p o d   a d d i n g   a   d e b u g   c o n t a i n e r   a n d   a t t a c h   t o   i t   k u b e c t l   d e b u g   m y p o d   - i t   - - i m a g e = b u s y b o x   - - c o p y - t o = m y - d e b u g g e r   #   C r e a t e   a   c o p y   o f   m y p o d   c h a n g i n g   t h e   c o m m a n d   o f   m y c o n t a i n e r   k u b e c t l   d e b u g   m y p o d   - i t   - - c o p y - t o = m y - d e b u g g e r   - - c o n t a i n e r = m y c o n t a i n e r   - -   s h   #   C r e a t e   a   c o p y   o f   m y p o d   c h a n g i n g   a l l   c o n t a i n e r   i m a g e s   t o   b u s y b o x   k u b e c t l   d e b u g   m y p o d   - - c o p y - t o = m y - d e b u g g e r   - - s e t - i m a g e = * = b u s y b o x   #   C r e a t e   a   c o p y   o f   m y p o d   a d d i n g   a   d e b u g   c o n t a i n e r   a n d   c h a n g i n g   c o n t a i n e r   i m a g e s   k u b e c t l   d e b u g   m y p o d   - i t   - - c o p y -


Question: What is Options?

Answer: I f   s p e c i f i e d ,   e v e r y t h i n g   a f t e r   - -   w i l l   b e   p a s s e d   t o   t h e   n e w   c o n t a i n e r   a s   A r g s   i n s t e a d   o f   C o m m a n d .   I f   t r u e ,   w a i t   f o r   t h e   c o n t a i n e r   t o   s t a r t   r u n n i n g ,   a n d   t h e n   a t t a c h   a s   i f   ' k u b e c t l   a t t a c h   . . . '   w e r e   c a l l e d .   D e f a u l t   f a l s e ,   u n l e s s   ' - i / - - s t d i n '   i s   s e t ,   i n   w h i c h   c a s e   t h e   d e f a u l t   i s   t r u e .   C o n t a i n e r   n a m e   t o   u s e   f o r   d e b u g   c o n t a i n e r .   C r e a t e   a   c o p y   o f   t h e   t a r g e t   P o d   w i t h   t h i s   n a m e .   P a t h   t o   a   J S O N   o r   Y A M L   f i l e   c o n t a i n i n g   a   p a r t i a l   c o n t a i n e r   s p e c   t o   c u s t o m i z e   b u i l t - i n   d e b u g   p r o f i l e s .   E n v i r o n m e n t   v a r i a b l e s   t o   s e t   i n   t h e   c o n t a i n e r .   i d e n t i f y i n g   t h e   r e s o u r c e   t o   d e b u g   h e l p   f o r   d e b u g   C o n t a i n e r   i m a g e   t o   u s e   f o r   d e b u g   c o n t a i n e r .   T h e   i m a g e   p u l l   p o l i c y   f o r   t h e   c o n t a i n e r .   I f   l e f t   e m p t y ,   t h i s   v a l u e   w i l l   n o t   b e   s p e c i f i e d   b y   t h e   c l i e n t   a n d   d e f a u l t e d   b y   t h e   s e r v e r .   I f   t r u e ,   k e e p   t h e   o r i g i n a l   p o d   a n n o t a t i o n s . ( T h i s   f l a g   o n l y   w o r k s   w h e n   u s e d   w i t h   ' - - c o p y - t o ' )   R u n   t h e   i n i t   c o n t a i n e r s   f o r   t h e   p o d .   D e f a u l t s   t o   t r u e . ( T h i s   f l a g   o n l y   w o r k s   w h e n   u s e d   w i t h   ' - - c o p y - t o ' )   I f   t r u e ,   k e e p   t h e   o r i g i n a l   p o d   l a b e l s . ( T h i s   f l a g   o n l y   w o


Question: What is Parent Options Inherited?

Answer: U s e r n a m e   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   U s e r   c o u l d   b e   a   r e g u l a r   u s e r   o r   a   s e r v i c e   a c c o u n t   i n   a   n a m e s p a c e .   G r o u p   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n ,   t h i s   f l a g   c a n   b e   r e p e a t e d   t o   s p e c i f y   m u l t i p l e   g r o u p s .   U I D   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   D e f a u l t   c a c h e   d i r e c t o r y   P a t h   t o   a   c e r t   f i l e   f o r   t h e   c e r t i f i c a t e   a u t h o r i t y   P a t h   t o   a   c l i e n t   c e r t i f i c a t e   f i l e   f o r   T L S   P a t h   t o   a   c l i e n t   k e y   f i l e   f o r   T L S   T h e   n a m e   o f   t h e   k u b e c o n f i g   c l u s t e r   t o   u s e   T h e   n a m e   o f   t h e   k u b e c o n f i g   c o n t e x t   t o   u s e   I f   t r u e ,   o p t - o u t   o f   r e s p o n s e   c o m p r e s s i o n   f o r   a l l   r e q u e s t s   t o   t h e   s e r v e r   I f   t r u e ,   t h e   s e r v e r ' s   c e r t i f i c a t e   w i l l   n o t   b e   c h e c k e d   f o r   v a l i d i t y .   T h i s   w i l l   m a k e   y o u r   H T T P S   c o n n e c t i o n s   i n s e c u r e   P a t h   t o   t h e   k u b e c o n f i g   f i l e   t o   u s e   f o r   C L I   r e q u e s t s .   P a t h   t o   t h e   k u b e r c   f i l e   t o   u s e   f o r   p r e f e r e n c e s .   T h i s   c a n   b e   d i s a b l e d   b y   e x p o r t i n g   K U B E C T L _ K U B E R C = f a l s e   f e a t u r e   g a t e   o r   t u r n i n g   o f f   t h e   f e a t u r e   K U B E R C = o f f .   R e q u i r e   s e r v e r   v e r s i o n   t o   m a t c h   c l i e n t   v e r s i o n   I f   p r e s e n t ,   t h e   n a m e s p a c e   s c o p e   f o r   t h i s   C L I   r e q u e s t   P a s s w o r d   f o r   b a s i c   a u t h e n t i c a t


Question: What is See Also?

Answer: k u b e c t l   -   k u b e c t l   c o n t r o l s   t h e   K u b e r n e t e s   c l u s t e r   m a n a g e r   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 Dynamic Admission Control?

Answer: Dynamic Admission ControlIn addition to compiled-in admission plugins, admission plugins can be developed as extensions and run as webhooks configured at runtime. This page describes how to build, configure, use, and monitor admission webhooks.What are admission webhooks?Admission webhooks are HTTP callbacks that receive admission requests and do something with them. You can define two types of admission webhooks, validating admission webhook and mutating admission webhook. Mutating admission webhooks are invoked first, and can modify objects sent to the API server to enforce custom defaults. After all object modifications are complete, and after the incoming object is validated by the API server, validating admission webhooks are invoked and can reject requests to enforce custom policies.Note:Admission webhooks that need to guarantee they see the final state of the object in order to enforce policy should use a validating admission webhook, since objects can be modified after being seen by mutating webhooks.Experimenting with admission webhooksAdmission webhooks are essentially part of the cluster control-plane. You should write and deploy them with great caution. Please read the user guides for instructions if you intend to write/deploy production-grade admission webhooks. In the following, we describe how to quickly experiment with admission webhooks.PrerequisitesEnsure that MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission controllers are enabled. Here is a recommended set of admission controllers to enable in general.Ensure that the admissionregistration.k8s.io/v1 API is enabled.Write an admission webhook serverPlease refer to the implementation of the admission webhook server that is validated in a Kubernetes e2e test. The webhook handles the AdmissionReview request sent by the API servers, and sends back its decision as an AdmissionReview object in the same version it received.See the webhook request section for details on the data sent to webhooks.See the webhook response section for the data expected from webhooks.The example admission webhook server leaves the ClientAuth field empty, which defaults to NoClientCert. This means that the webhook server does not authenticate the identity of the clients, supposedly API servers. If you need mutual TLS or other ways to authenticate the clients, see how to authenticate API servers.Deploy the admission webhook serviceThe webhook server in the e2e test is deployed in the Kubernetes cluster, via the deployment API. The test also creates a service as the front-end of the webhook server. See code.You may also deploy your webhooks outside of the cluster. You will need to update your webhook configurations accordingly.Configure admission webhooks on the flyYou can dynamically configure what resources are subject to what admission webhooks via ValidatingWebhookConfiguration or MutatingWebhookConfiguration.The following is an example ValidatingWebhookConfiguration, a mutating webhook con