Namespaces: =: io.murano.apps.docker.kubernetes std: io.murano res: io.murano.resources sys: io.murano.system Name: KubernetesGatewayNode Extends: KubernetesNode Methods: initialize: Body: - $._environment: $.find(std:Environment).require() - $._cluster: $.find(KubernetesCluster).require() deployInstance: Body: - If: not $.getAttr(deployed, false) Then: - $._environment.reporter.report($this, 'Creating Gateway node for Kubernetes services') - $.super($.deployInstance()) - $.setAttr(deployed, true) setupEtcd: Body: - $._environment.reporter.report($, 'Configuring etcd node {0}'.format($.instance.name)) - $resources: new(sys:Resources) - $template: $resources.yaml('EtcdAddMember.template').bind(dict( name => $.instance.name, ip => $.getIp() )) - $clusterConfig: $._cluster.masterNode.instance.agent.call($template, $resources) - $template: $resources.yaml('MemberEtcdSetup.template').bind(dict( name => $.instance.name, ip => $.getIp(), clusterConfig => $clusterConfig )) - $.instance.agent.call($template, $resources) setupNode: Body: - $._environment.reporter.report($this, 'Setup Flannel network on {0}'.format($.instance.name)) - $resources: new(sys:Resources) - $template: $resources.yaml('SetupFlannelNode.template') - $.instance.agent.call($template, $resources) - $._environment.reporter.report($, 'Setup Load Balancer on {0}'.format($.instance.name)) - $template: $resources.yaml('HAProxySetup.template').bind(dict( masterIp => $._cluster.masterNode.getIp() )) - $.instance.agent.call($template, $resources) - $template: $resources.yaml('KubeRegisterNode.template').bind(dict( name => $.instance.name, ip => $.getIp() )) - $._cluster.masterNode.instance.agent.call($template, $resources) removeFromCluster: Body: - If: $.getAttr(deployed, false) Then: - $._environment.reporter.report($this, 'Deleting Kubernetes Minion') - $resources: new(sys:Resources) - $template: $resources.yaml('RemoveMinion.template').bind(dict(name=>$.getIp())) - $._cluster.masterNode.instance.agent.call($template, $resources) - $._environment.reporter.report($this, 'Node {0} deleted'.format($.getIp())) - $.setAttr(deployed, false)