(command.CommandList children: [ (C {<Id.KW_Set set>} {<-e>}) (C {<echo>}) (C {<echo>} {(DQ <'===> Initializing:'>)}) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<which>} {<python>})]) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<echo>} { (DQ < 'Python is a prerequisite for running this script. Please install Python and try running again.' > ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [60 74] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<which>} {<gcloud>})]) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<echo>} { (DQ < 'gcloud is a prerequisite for running this script. Please install gcloud and try running again.' > ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [91 105] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gcloud_instances) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<gcloud>} {<compute>} {<instances>} {<list>}) (C {<grep>} {(DQ <Id.Lit_Other '\\'> <-master>)}) ] negated: F ) ] ) ) } spids: [122] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$gcloud_instances'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name KUBE_GCE_INSTANCE_PREFIX))} {<Id.Lit_RBracket ']'>} ) ] ) ] action: [ (C {<echo>} { (DQ < 'This script is only able to supply the necessary serviceaccount key if you are running on Google' > ) } ) (C {<echo>} { (DQ < 'Compute Engine using a cluster/kube-up.sh script with KUBE_GCE_INSTANCE_PREFIX set. If this is not' > ) } ) (C {<echo>} {(DQ <'the case, be ready to supply a path to the serviceaccount public key.'>)}) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name KUBE_GCE_INSTANCE_PREFIX))} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<echo>} {(DQ <'Please provide your KUBE_GCE_INSTANCE_PREFIX now:'>)}) (C {<read>} {<KUBE_GCE_INSTANCE_PREFIX>}) ] spids: [192 207] ) ] ) ] spids: [142 168] ) ] ) (C {<export>} {<Id.Lit_VarLike 'OPENSHIFT_EXAMPLE='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<pwd>})]) ) </examples/openshift-origin> } ) (C {<echo>} {<Set>} {<Id.Lit_VarLike 'OPENSHIFT_EXAMPLE='> (${ Id.VSub_Name OPENSHIFT_EXAMPLE)}) (C {<export>} {<Id.Lit_VarLike 'OPENSHIFT_CONFIG='> (${ Id.VSub_Name OPENSHIFT_EXAMPLE) </config>}) (C {<echo>} {<Set>} {<Id.Lit_VarLike 'OPENSHIFT_CONFIG='> (${ Id.VSub_Name OPENSHIFT_CONFIG)}) (C {<mkdir>} {(${ Id.VSub_Name OPENSHIFT_CONFIG)}) (C {<echo>} {<Made>} {<dir>} {(${ Id.VSub_Name OPENSHIFT_CONFIG)}) (C {<echo>}) (C {<echo>} {(DQ <'===> Setting up OpenShift-Origin namespace:'>)}) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-origin-namespace.yaml>} ) (C {<echo>}) (C {<echo>} {(DQ <'===> Setting up etcd-discovery:'>)}) (C {<export>} {<Id.Lit_VarLike 'ETCD_INITIAL_CLUSTER_TOKEN='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<python>} {<-c>} { (DQ < "import string; import random; print(''.join(random.SystemRandom().choice(string.ascii_lowercase + string.digits) for _ in range(40)))" > ) } ) ] ) ) } ) (C {<export>} {<Id.Lit_VarLike 'ETCD_DISCOVERY_TOKEN='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<python>} {<-c>} { (DQ <'import string; import random; print('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <etcd-cluster-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) < " + ''.join(random.SystemRandom().choice(string.ascii_lowercase + string.digits) for _ in range(5)))" > ) } ) ] ) ) } ) (C {<sed>} {<-i.bak>} {<-e>} { (DQ <s/INSERT_ETCD_INITIAL_CLUSTER_TOKEN/> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name ETCD_INITIAL_CLUSTER_TOKEN) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) </g> ) } {<-e>} { (DQ <s/INSERT_ETCD_DISCOVERY_TOKEN/> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name ETCD_DISCOVERY_TOKEN) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) </g> ) } {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </etcd-controller.yaml>} ) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </etcd-discovery-controller.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </etcd-discovery-service.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<echo>}) (C {<echo>} {(DQ <'===> Setting up etcd:'>)}) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </etcd-controller.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </etcd-service.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<echo>}) (C {<echo>} {(DQ <'===> Setting up openshift-origin:'>)}) (command.Simple words: [ {<kubectl>} {<config>} {<view>} {<--output> <Id.Lit_Equals '='> <yaml>} {<--flatten> <Id.Lit_Equals '='> <true>} {<--minify> <Id.Lit_Equals '='> <true>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name OPENSHIFT_CONFIG) </kubeconfig>} ) ] ) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-service.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<echo>}) (C {<export>} {<Id.Lit_VarLike 'PUBLIC_OPENSHIFT_IP='> (DQ )}) (C {<echo>} {(DQ <'===> Waiting for public IP to be set for the OpenShift Service.'>)}) (C {<echo>} {(DQ <'Mistakes in service setup can cause this to loop infinitely if an'>)}) (C {<echo>} {(DQ <'external IP is never set. Ensure that the OpenShift service'>)}) (C {<echo>} {(DQ <'is set to use an external load balancer. This process may take'>)}) (C {<echo>} {(DQ <'a few minutes. Errors can be found in the log file found at:'>)}) (C {<echo>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-startup.log>}) (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-startup.log>} ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(braced_var_sub token:<Id.VSub_Name PUBLIC_OPENSHIFT_IP> prefix_op:(Id.VSub_Pound))} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (C {<echo>} {<-n>} {<.>}) (C {<sleep>} {<1>}) (command.BraceGroup children: [ (C {<export>} {<Id.Lit_VarLike 'PUBLIC_OPENSHIFT_IP='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<kubectl>} {<get>} {<services>} {<openshift>} {<--namespace> <Id.Lit_Equals '='> (DQ <openshift-origin>)} {<--template> <Id.Lit_Equals '='> (DQ <'{{ index .status.loadBalancer.ingress 0 '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <ip> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' }}'> ) } ) ] ) ) } ) ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-startup.log>} ) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name PUBLIC_OPENSHIFT_IP)} right: {<Id.Lit_Other '^'> <Id.Lit_Other '('> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '{'> <1> <Id.Lit_Other ','> <3> <Id.Lit_Other '}'> <Id.Lit_RegexMeta '\\.'> <Id.Lit_Other ')'> <Id.Lit_Other '{'> <3> <Id.Lit_Other '}'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '{'> <1> <Id.Lit_Other ','> <3> <Id.Lit_Other '}'> <Id.Lit_Other '$'> } ) ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<export>} {<Id.Lit_VarLike 'PUBLIC_OPENSHIFT_IP='> (DQ )})] spids: [641 681] ) ] ) ] ) ) (C {<echo>}) (C {<echo>} {(DQ <'Public OpenShift IP set to: '> (${ Id.VSub_Name PUBLIC_OPENSHIFT_IP))}) (C {<echo>}) (C {<echo>} {(DQ <'===> Configuring OpenShift:'>)}) (C {<docker>} {<run>} {<--privileged>} {<-v>} {(${ Id.VSub_Name OPENSHIFT_CONFIG) <Id.Lit_Other ':'> </config>} {<openshift/origin>} {<start>} {<master>} {<--write-config> <Id.Lit_Equals '='> </config>} {<--kubeconfig> <Id.Lit_Equals '='> </config/kubeconfig>} {<--master> <Id.Lit_Equals '='> <https> <Id.Lit_Other ':'> <//localhost> <Id.Lit_Other ':'> <8443>} {<--public-master> <Id.Lit_Equals '='> <https> <Id.Lit_Other ':'> <//> (${ Id.VSub_Name PUBLIC_OPENSHIFT_IP) <Id.Lit_Other ':'> <8443> } {<--etcd> <Id.Lit_Equals '='> <http> <Id.Lit_Other ':'> <//etcd> <Id.Lit_Other ':'> <2379>} ) (C {<sudo>} {<-E>} {<chown>} {<-R>} {(${ Id.VSub_Name USER)} {(${ Id.VSub_Name OPENSHIFT_CONFIG)}) (C {<export>} {<Id.Lit_VarLike 'ZONE='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<gcloud>} {<compute>} {<instances>} {<list>}) (C {<grep>} {(DQ (${ Id.VSub_Name KUBE_GCE_INSTANCE_PREFIX) <Id.Lit_Other '\\'> <-master>)} ) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<head>} {<-1>}) ] negated: F ) ] ) ) } ) (command.Pipeline children: [ (C {<echo>} {(DQ <'sudo cat /srv/kubernetes/server.key; exit;'>)}) (C {<gcloud>} {<compute>} {<ssh>} {(${ Id.VSub_Name KUBE_GCE_INSTANCE_PREFIX) <-master>} {<--zone>} {(${ Id.VSub_Name ZONE)} ) (command.Simple words: [ {<grep>} {<-Ex>} { (DQ <'(^'> <Id.Lit_Other '\\'> <'-.*'> <Id.Lit_Other '\\'> <-> <Id.Lit_Other '$'> <'|^'> <Id.Lit_Other '\\'> <'S+'> <Id.Lit_Other '$'> <')'> ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name OPENSHIFT_CONFIG) </serviceaccounts.private.key>} ) ] ) ] negated: F ) (C {<sed>} {<-i>} {<-e>} {(SQ <'s/publicKeyFiles:.*$/publicKeyFiles:/g'>)} {<-e>} {(SQ <'/publicKeyFiles:/a \\ \\ - serviceaccounts.private.key'>)} {(${ Id.VSub_Name OPENSHIFT_CONFIG) </master-config.yaml>} ) (command.Simple words: [ {<docker>} {<run>} {<-it>} {<--privileged>} {<-e> <Id.Lit_Equals '='> (DQ <'KUBECONFIG=/config/admin.kubeconfig'>)} {<-v>} {(${ Id.VSub_Name OPENSHIFT_CONFIG) <Id.Lit_Other ':'> </config>} {<openshift/origin>} {<cli>} {<secrets>} {<new>} {<openshift-config>} {</config>} {<-o>} {<json>} ] redirects: [ (redir.Redir op: <Id.Redir_AndGreat '&>'> fd: -1 arg_word: {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </secret.json>} ) ] ) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </secret.json>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<echo>}) (C {<echo>} {(DQ <'===> Running OpenShift Master:'>)}) (C {<kubectl>} {<create>} {<-f>} {(${ Id.VSub_Name OPENSHIFT_EXAMPLE) </openshift-controller.yaml>} {<--namespace> <Id.Lit_Equals '='> (SQ <openshift-origin>)} ) (C {<echo>}) (C {<echo>} {<Done.>}) ] )