Support deploy update_config (#1232)

This commit is contained in:
Hang Yan
2020-01-05 19:30:41 +08:00
committed by GitHub
parent 4d864a9aab
commit e7f05588bf
17 changed files with 602 additions and 538 deletions
@@ -1,8 +0,0 @@
version: '3'
services:
db:
image: postgres
deploy:
placement:
constraints: [node.hostname == machine]
-10
View File
@@ -1,10 +0,0 @@
version: '3'
services:
db:
image: postgres
deploy:
placement:
constraints:
- node.hostname == machine
- engine.labels.operatingsystem == ubuntu 14.04
@@ -1,60 +0,0 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"name": "db"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"io.kompose.service": "db"
}
},
"strategy": {},
"template": {
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"image": "postgres",
"imagePullPolicy": "",
"name": "db",
"resources": {}
}
],
"nodeSelector": {
"kubernetes.io/hostname": "machine"
},
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {}
}
]
}
-61
View File
@@ -1,61 +0,0 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"name": "db"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"io.kompose.service": "db"
}
},
"strategy": {},
"template": {
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"image": "postgres",
"imagePullPolicy": "",
"name": "db",
"resources": {}
}
],
"nodeSelector": {
"beta.kubernetes.io/os": "ubuntu 14.04",
"kubernetes.io/hostname": "machine"
},
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {}
}
]
}
@@ -1,100 +0,0 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
}
},
"spec": {
"strategy": {
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"db"
],
"from": {
"kind": "ImageStreamTag",
"name": "db:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "db"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"name": "db",
"image": " ",
"resources": {}
}
],
"restartPolicy": "Always",
"nodeSelector": {
"kubernetes.io/hostname": "machine"
}
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "postgres"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
}
]
}
-101
View File
@@ -1,101 +0,0 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
}
},
"spec": {
"strategy": {
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"db"
],
"from": {
"kind": "ImageStreamTag",
"name": "db:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "db"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"name": "db",
"image": " ",
"resources": {}
}
],
"restartPolicy": "Always",
"nodeSelector": {
"beta.kubernetes.io/os": "ubuntu 14.04",
"kubernetes.io/hostname": "machine"
}
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "postgres"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
}
]
}
-12
View File
@@ -1,12 +0,0 @@
version: "3"
services:
foo:
labels:
kompose.service.type: headless
deploy:
mode: global
replicas: 6
labels:
com.example.description: "This label will appear on the web service"
image: redis
+34
View File
@@ -0,0 +1,34 @@
version: "3.7"
services:
vote: # test placement and update_config
image: dockersamples/examplevotingapp_vote:before
depends_on:
- redis
deploy:
replicas: 2
placement:
constraints: [node.hostname == machine]
update_config:
parallelism: 2
delay: 10s
order: stop-first
db: # test placement
image: postgres
deploy:
placement:
constraints:
- node.hostname == machine
- engine.labels.operatingsystem == ubuntu 14.04
foo: # test labels
labels:
kompose.service.type: headless
deploy:
mode: global
replicas: 6
update_config:
parallelism: 2
delay: 10s
order: stop-first
labels:
com.example.description: "This label will appear on the web service"
image: redis
@@ -35,6 +35,60 @@
"loadBalancer": {}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"name": "db"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"io.kompose.service": "db"
}
},
"strategy": {},
"template": {
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"image": "postgres",
"imagePullPolicy": "",
"name": "db",
"resources": {}
}
],
"nodeSelector": {
"beta.kubernetes.io/os": "ubuntu 14.04",
"kubernetes.io/hostname": "machine"
},
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {}
},
{
"apiVersion": "apps/v1",
"kind": "DaemonSet",
@@ -81,95 +135,63 @@
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
}
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "vote"
},
"name": "vote"
},
"spec": {
"strategy": {
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"foo"
],
"from": {
"kind": "ImageStreamTag",
"name": "foo:latest"
}
}
}
],
"replicas": 1,
"test": false,
"replicas": 2,
"selector": {
"io.kompose.service": "foo"
"matchLabels": {
"io.kompose.service": "vote"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 0,
"maxUnavailable": 2
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
"io.kompose.service": "vote"
}
},
"spec": {
"containers": [
{
"name": "foo",
"image": " ",
"image": "dockersamples/examplevotingapp_vote:before",
"imagePullPolicy": "",
"name": "vote",
"resources": {}
}
],
"restartPolicy": "Always"
"nodeSelector": {
"kubernetes.io/hostname": "machine"
},
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "redis"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
}
]
}
@@ -1,84 +0,0 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "foo"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"apiVersion": "apps/v1",
"kind": "DaemonSet",
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"com.example.description": "This label will appear on the web service",
"io.kompose.service": "foo"
},
"name": "foo"
},
"spec": {
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"containers": [
{
"image": "redis",
"imagePullPolicy": "",
"name": "foo",
"resources": {}
}
],
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {
"currentNumberScheduled": 0,
"desiredNumberScheduled": 0,
"numberMisscheduled": 0
}
}
]
}
+374
View File
@@ -0,0 +1,374 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "foo"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
}
},
"spec": {
"strategy": {
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"db"
],
"from": {
"kind": "ImageStreamTag",
"name": "db:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "db"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"containers": [
{
"name": "db",
"image": " ",
"resources": {}
}
],
"restartPolicy": "Always",
"nodeSelector": {
"beta.kubernetes.io/os": "ubuntu 14.04",
"kubernetes.io/hostname": "machine"
}
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "db",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "db"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "postgres"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
},
{
"apiVersion": "apps/v1",
"kind": "DaemonSet",
"metadata": {
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
},
"creationTimestamp": null,
"labels": {
"com.example.description": "This label will appear on the web service",
"io.kompose.service": "foo"
},
"name": "foo"
},
"spec": {
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"containers": [
{
"image": "redis",
"imagePullPolicy": "",
"name": "foo",
"resources": {}
}
],
"restartPolicy": "Always",
"serviceAccountName": "",
"volumes": null
}
}
},
"status": {
"currentNumberScheduled": 0,
"desiredNumberScheduled": 0,
"numberMisscheduled": 0
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.service.type": "headless",
"kompose.version": "%VERSION%"
}
},
"spec": {
"strategy": {
"type": "Rolling",
"rollingParams": {
"updatePeriodSeconds": 10,
"maxUnavailable": 2,
"maxSurge": 0
},
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"foo"
],
"from": {
"kind": "ImageStreamTag",
"name": "foo:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "foo"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"containers": [
{
"name": "foo",
"image": " ",
"resources": {}
}
],
"restartPolicy": "Always"
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "redis"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "vote",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "vote"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
}
},
"spec": {
"strategy": {
"type": "Rolling",
"rollingParams": {
"updatePeriodSeconds": 10,
"maxUnavailable": 2,
"maxSurge": 0
},
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"vote"
],
"from": {
"kind": "ImageStreamTag",
"name": "vote:before"
}
}
}
],
"replicas": 2,
"test": false,
"selector": {
"io.kompose.service": "vote"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "vote"
}
},
"spec": {
"containers": [
{
"name": "vote",
"image": " ",
"resources": {}
}
],
"restartPolicy": "Always",
"nodeSelector": {
"kubernetes.io/hostname": "machine"
}
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "vote",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "vote"
}
},
"spec": {
"tags": [
{
"name": "before",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "dockersamples/examplevotingapp_vote:before"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
}
]
}