Stan Lagun c681e2197d Update for changes in k8s 0.15
* Migrated to v1beta3 API
* cAdvisor is now enabled by default
* command line daemon settings updated
* HAproxy template updated for multi-port services
* Better reporting

Change-Id: Iefcbe8073fb35503e2fe2ee5c6bf4610561c3cb6
Closes-Bug: #1446306
Closes-Bug: #1445541
2015-04-20 20:34:02 +03:00

123 lines
4.0 KiB
YAML

Namespaces:
=: io.murano.apps.docker.kubernetes
std: io.murano
res: io.murano.resources
sys: io.murano.system
Name: KubernetesMinionNode
Extends: KubernetesNode
Properties:
exposeCAdvisor:
Contract: $.bool().notNull()
Default: false
Methods:
initialize:
Body:
- $._environment: $.find(std:Environment).require()
- $._cluster: $.find(KubernetesCluster).require()
deployInstance:
Body:
- If: not $.getAttr(instanceDeployed, false)
Then:
- $._environment.reporter.report($this, 'Creating Kubernetes Node {0}'.format($.instance.name))
- $.super($.deployInstance())
- $.setAttr(instanceDeployed, true)
setupEtcd:
Body:
- If: not $.getAttr(etcdConfigured, false)
Then:
- $._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)
- $.setAttr(etcdConfigured, true)
setupNode:
Body:
- If: not $.getAttr(nodeConfigured, false)
Then:
- $._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)
- $securityGroupIngress:
- ToPort: 4194
FromPort: 4194
IpProtocol: tcp
External: $.exposeCAdvisor
- $._environment.securityGroupManager.addGroupIngress($securityGroupIngress)
- $._environment.reporter.report($, 'Setup Kubernetes Minion on {0}'.format($.instance.name))
- $template: $resources.yaml('KubeMinionSetup.template').bind(dict(
name => $.instance.name,
ip => $.getIp(),
masterIp => $._cluster.masterNode.getIp(),
dockerRegistry => $._cluster.dockerRegistry
))
- $.instance.agent.call($template, $resources)
- $._registerNode()
- $.setAttr(nodeConfigured, true)
- $msg: 'cAdvisor monitoring for Node {0} is now available at http://{1}:4194'
- $ip: $.getIp()
- If: $.exposeCAdvisor
Then:
- $ip: coalesce($.instance.floatingIpAddress, $.getIp())
- $._environment.reporter.report($this, $msg.format($.instance.name, $ip))
_registerNode:
Body:
- $nodeDefinition:
kind: Node
apiVersion: v1beta3
metadata:
name: $.getIp()
labels:
name: $.instance.name
spec:
externalID: $.id()
status:
capacity:
cpu: 200
memory: 4145438720
- $resources: new(sys:Resources)
- $template: $resources.yaml('KubeRegisterNode.template').bind(dict(
nodeDefinition => $nodeDefinition
))
- $._cluster.masterNode.instance.agent.call($template, $resources)
removeFromCluster:
Body:
- If: $.getAttr(nodeConfigured, false)
Then:
- $._environment.reporter.report($this, 'Deleting Kubernetes Minion')
- $resources: new(sys:Resources)
- $template: $resources.yaml('RemoveMinion.template').bind(dict(
nodeId => $.getIp()
))
- $._cluster.masterNode.instance.agent.call($template, $resources)
- $._environment.reporter.report($this, 'Node {0} deleted'.format($.instance.name))
- $.setAttr(nodeConfigured, false)