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
This commit is contained in:
Stan Lagun
2015-04-20 19:54:59 +03:00
parent 7ff496ad14
commit c681e2197d
16 changed files with 299 additions and 352 deletions

View File

@@ -35,16 +35,14 @@ Methods:
- If: $podDefinition = null
Then:
- $podDefinition:
id: $podName
apiVersion: v1beta3
kind: Pod
apiVersion: v1beta1
desiredState:
manifest:
version: v1beta1
id: $podName
containers: []
volumes: []
labels: $._getPodLabels($podName)
metadata:
name: $podName
labels: $._getPodLabels($podName)
spec:
containers: []
volumes: []
- $.setAttr(lastPodDeployed, $podDefinition)
- $._podDefinition: $podDefinition
@@ -81,23 +79,23 @@ Methods:
- $containerDef:
name: toLower($container.name)
image: $container.image
command: $container.commands
args: $container.commands
ports: $container.ports.select($this._getPortDefinition($))
volumeMounts: $container.volumes.keys().select(dict(name => $this._generateVolumeName($container.volumes.get($)), mountPath => $))
env: $container.env.keys().select(dict(key => $, value => $container.env.get($)))
- $newVolumes: $container.volumes.values().where(not $this._generateVolumeName($) in $this._podDefinition.desiredState.volumes.name).
- $newVolumes: $container.volumes.values().where(not $this._generateVolumeName($) in $this._podDefinition.spec.volumes.name).
select($this._buildVolumeEntry($))
- $diff:
desiredState:
manifest:
containers: [$containerDef]
volumes: $newVolumes
- $diff:
spec:
containers: [$containerDef]
volumes: $newVolumes
- $._podDefinition: $._podDefinition.mergeWith($diff)
- $.deploy()
- $._environment.reporter.report($, 'Creating services for Pod {0}'.format($.name))
- $.kubernetesCluster.createServices(
- $.kubernetesCluster.createService(
applicationName => $container.name,
applicationPorts => $container.ports,
podId => $podName)
@@ -153,14 +151,14 @@ Methods:
- name:
Contract: $.string().notNull()
Body:
- $lenBefore: len($._podDefinition.desiredState.manifest.containers) + len($._podDefinition.desiredState.manifest.volumes)
- $newContainers: $._podDefinition.desiredState.manifest.containers.where($.name != $name)
- $newVolumes: $._podDefinition.desiredState.manifest.volumes.where(
$.name in $._podDefinition.desiredState.manifest.containers.volumeMounts.name)
- $lenBefore: len($._podDefinition.spec.containers) + len($._podDefinition.spec.volumes)
- $newContainers: $._podDefinition.spec.containers.where($.name != $name)
- $newVolumes: $._podDefinition.spec.volumes.where(
$.name in $._podDefinition.spec.containers.volumeMounts.name)
- If: len($newContainers) + len($newVolumes) != $lenBefore
Then:
- $._podDefinition.desiredState.manifest.containers: $newContainers
- $._podDefinition.desiredState.manifest.volumes: $newVolumes
- $._podDefinition.spec.containers: $newContainers
- $._podDefinition.spec.volumes: $newVolumes
deleteContainer:
@@ -190,7 +188,7 @@ Methods:
- $podDefinition: $._podDefinition
- $replicas: $.replicas
- If: len($podDefinition.desiredState.manifest.containers) = 0
- If: len($podDefinition.spec.containers) = 0
Then:
- $replicas: 0
- $.setAttr(lastReplicas, $replicas)
@@ -205,10 +203,10 @@ Methods:
- If: $replicas = 0 and $prevReplicas > 0
Then:
- $.kubernetesCluster.deleteReplicationController($._getReplicationControllerId())
- If: $prevPod != $podDefinition
- If: $prevPod != $podDefinition and len($prevPod.spec.containers) > 0
Then:
- $.kubernetesCluster.deletePods(dict(id => $._getPodName()))
- If: $.replicas = 0 and len($podDefinition.desiredState.manifest.containers) > 0
- If: $.replicas = 0 and len($podDefinition.spec.containers) > 0
Then:
- $.kubernetesCluster.createPod(definition => $podDefinition, isNew => true)
@@ -222,16 +220,19 @@ Methods:
Contract: {}
Body:
Return:
id: $._getReplicationControllerId()
apiVersion: v1beta3
kind: ReplicationController
apiVersion: v1beta1
desiredState:
metadata:
name: $._getReplicationControllerId()
labels: $podDefinition.metadata.labels
spec:
replicas: $.replicas
replicaSelector:
selector:
id: $._getPodName()
podTemplate:
desiredState: $podDefinition.desiredState
labels: $podDefinition.labels
template:
metadata:
labels: $podDefinition.metadata.labels
spec: $podDefinition.spec
_getReplicationControllerId: