r a d e - - i n s t a l l d e v e l o p - [ 環境I D ] . / d e v e l o p \ - - n a m e s p a c e d e v e l o p - [ 環境I D ] \ - - s e t i m a g e T a g = [ コミットハッシュ] \ - - s e t e n v i r o n m e n t _ i d = [ 環境I D ] \ - - s e t e n v i r o n m e n t _ n a m e = [ 環境名] \ - - s e t r e a l t i m e _ s e r v e r _ r e p l i c a _ c o u n t = 1 - - n a m e p s a c e でインストー ルするnamespace を指定 - - s e t で環境固有のパラメー タを動的に割り当てる
V e r s i o n : v 1 k i n d : S e r v i c e m e t a d a t a : n a m e : a p i - s e r v e r a n n o t a t i o n s : e n v i r o n m e n t _ n a m e : { { . V a l u e s . e n v i r o n m e n t _ n a m e } } l a b e l s : a p p : a p i - s e r v e r e n v i r o n m e n t _ i d : { { . V a l u e s . e n v i r o n m e n t _ i d } } ここでは環境名と環境ID をlabel とannotation にinjection している → 後述するログインフロー で利用するため
t o r = s e l e c t o r s . m a p { | k , v | " # { k } = # { v } " } . j o i n ( ' , ' ) c l i e n t . g e t _ s e r v i c e s ( l a b e l _ s e l e c t o r : s e l e c t o r ) . m a p d o | s e r v i c e | O p e n S t r u c t . n e w ( # l a b e l から環境I D を取得 e n v i r o n m e n t _ i d : s e r v i c e . d i g ( : m e t a d a t a , : l a b e l s , : e n v i r o n m e n t _ i d ) , # a n n o t a t i o n から環境名を取得 e n v i r o n m e n t _ n a m e : s e r v i c e . d i g ( : m e t a d a t a , : a n n o t a t i o n s , : e n v i r o n m e n t _ n a m e ) , # s e r v i c e の基本情報からL B のI P と割り当てP o r t を取得 i p : s e r v i c e . d i g ( : s t a t u s , : l o a d B a l a n c e r , : i n g r e s s , 0 , : i p p o r t : s e r v i c e . d i g ( : s p e c , : p o r t s , 0 , : p o r t ) ) e n d