Closed kilwa0 closed 6 years ago
Thank you for your contribution.
Can you provide JSON output of kubectl get deployments -o json
to check the patch? TIA
Sure. Kubernetes 1.9.7 RHEL 7.1
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "2",
"description": "Defines how to deploy Heketi"
},
"creationTimestamp": "2018-07-19T12:47:18Z",
"generation": 2,
"labels": {
"glusterfs": "heketi-deployment"
},
"name": "heketi",
"namespace": "default",
"resourceVersion": "192416",
"selfLink": "/apis/extensions/v1beta1/namespaces/default/deployments/heketi",
"uid": "df0eda7c-8b51-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"glusterfs": "heketi-pod",
"name": "heketi"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"glusterfs": "heketi-pod",
"name": "heketi"
},
"name": "heketi"
},
"spec": {
"containers": [
{
"env": [
{
"name": "HEKETI_EXECUTOR",
"value": "ssh"
},
{
"name": "HEKETI_DB_PATH",
"value": "/var/lib/heketi/heketi.db"
},
{
"name": "HEKETI_FSTAB",
"value": "/var/lib/heketi/fstab"
},
{
"name": "HEKETI_SNAPSHOT_LIMIT",
"value": "14"
},
{
"name": "HEKETI_KUBE_GLUSTER_DAEMONSET",
"value": "y"
}
],
"image": "heketi/heketi:dev",
"imagePullPolicy": "Always",
"livenessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/hello",
"port": 8080,
"scheme": "HTTP"
},
"initialDelaySeconds": 30,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 3
},
"name": "heketi",
"ports": [
{
"containerPort": 8080,
"protocol": "TCP"
}
],
"readinessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/hello",
"port": 8080,
"scheme": "HTTP"
},
"initialDelaySeconds": 3,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 3
},
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/backupdb",
"name": "heketi-db-secret"
},
{
"mountPath": "/var/lib/heketi",
"name": "db"
},
{
"mountPath": "/etc/heketi",
"name": "config"
},
{
"mountPath": "/etc/heketi/secret",
"name": "access"
}
]
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "heketi-service-account",
"serviceAccountName": "heketi-service-account",
"terminationGracePeriodSeconds": 30,
"volumes": [
{
"glusterfs": {
"endpoints": "heketi-storage-endpoints",
"path": "heketidbstorage"
},
"name": "db"
},
{
"name": "heketi-db-secret",
"secret": {
"defaultMode": 420,
"secretName": "heketi-storage-secret"
}
},
{
"name": "config",
"secret": {
"defaultMode": 420,
"secretName": "heketi-config-secret"
}
},
{
"name": "access",
"secret": {
"defaultMode": 420,
"secretName": "acces-heketi"
}
}
]
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-19T12:47:18Z",
"lastUpdateTime": "2018-07-19T12:47:18Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 2,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1",
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"extensions/v1beta1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"default-http-backend\"},\"name\":\"default-http-backend\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"default-http-backend\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"default-http-backend\"}},\"spec\":{\"containers\":[{\"image\":\"gcr.io/google_containers/defaultbackend:1.4\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/healthz\",\"port\":8080,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":30,\"timeoutSeconds\":5},\"name\":\"default-http-backend\",\"ports\":[{\"containerPort\":8080}],\"resources\":{\"limits\":{\"cpu\":\"10m\",\"memory\":\"20Mi\"},\"requests\":{\"cpu\":\"10m\",\"memory\":\"20Mi\"}}}],\"terminationGracePeriodSeconds\":60}}}}\n"
},
"creationTimestamp": "2018-07-18T10:29:33Z",
"generation": 1,
"labels": {
"app": "default-http-backend"
},
"name": "default-http-backend",
"namespace": "ingress-nginx",
"resourceVersion": "11787",
"selfLink": "/apis/extensions/v1beta1/namespaces/ingress-nginx/deployments/default-http-backend",
"uid": "762d3beb-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app": "default-http-backend"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"app": "default-http-backend"
}
},
"spec": {
"containers": [
{
"image": "gcr.io/google_containers/defaultbackend:1.4",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/healthz",
"port": 8080,
"scheme": "HTTP"
},
"initialDelaySeconds": 30,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 5
},
"name": "default-http-backend",
"ports": [
{
"containerPort": 8080,
"protocol": "TCP"
}
],
"resources": {
"limits": {
"cpu": "10m",
"memory": "20Mi"
},
"requests": {
"cpu": "10m",
"memory": "20Mi"
}
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"terminationGracePeriodSeconds": 60
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:29:33Z",
"lastUpdateTime": "2018-07-18T10:29:33Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 1,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "2",
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"extensions/v1beta1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"nginx-ingress-controller\",\"namespace\":\"ingress-nginx\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"ingress-nginx\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"10254\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"ingress-nginx\"}},\"spec\":{\"containers\":[{\"args\":[\"/nginx-ingress-controller\",\"--default-backend-service=$(POD_NAMESPACE)/default-http-backend\",\"--configmap=$(POD_NAMESPACE)/nginx-configuration\",\"--tcp-services-configmap=$(POD_NAMESPACE)/tcp-services\",\"--udp-services-configmap=$(POD_NAMESPACE)/udp-services\",\"--publish-service=$(POD_NAMESPACE)/ingress-nginx\",\"--annotations-prefix=nginx.ingress.kubernetes.io\"],\"env\":[{\"name\":\"POD_NAME\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.name\"}}},{\"name\":\"POD_NAMESPACE\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.namespace\"}}}],\"image\":\"quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.17.1\",\"livenessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/healthz\",\"port\":10254,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":10,\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":1},\"name\":\"nginx-ingress-controller\",\"ports\":[{\"containerPort\":80,\"name\":\"http\"},{\"containerPort\":443,\"name\":\"https\"}],\"readinessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/healthz\",\"port\":10254,\"scheme\":\"HTTP\"},\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":1},\"securityContext\":{\"capabilities\":{\"add\":[\"NET_BIND_SERVICE\"],\"drop\":[\"ALL\"]},\"runAsUser\":33}}],\"serviceAccountName\":\"nginx-ingress-serviceaccount\"}}}}\n"
},
"creationTimestamp": "2018-07-18T10:29:36Z",
"generation": 2,
"labels": {
"app": "ingress-nginx"
},
"name": "nginx-ingress-controller",
"namespace": "ingress-nginx",
"resourceVersion": "139661",
"selfLink": "/apis/extensions/v1beta1/namespaces/ingress-nginx/deployments/nginx-ingress-controller",
"uid": "78074933-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app": "ingress-nginx"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"annotations": {
"prometheus.io/port": "10254",
"prometheus.io/scrape": "true"
},
"creationTimestamp": null,
"labels": {
"app": "ingress-nginx"
}
},
"spec": {
"containers": [
{
"args": [
"/nginx-ingress-controller",
"--default-backend-service=$(POD_NAMESPACE)/default-http-backend",
"--configmap=$(POD_NAMESPACE)/nginx-configuration",
"--tcp-services-configmap=$(POD_NAMESPACE)/tcp-services",
"--udp-services-configmap=$(POD_NAMESPACE)/udp-services",
"--publish-service=$(POD_NAMESPACE)/ingress-nginx",
"--annotations-prefix=nginx.ingress.kubernetes.io",
"--enable-ssl-passthrough"
],
"env": [
{
"name": "POD_NAME",
"valueFrom": {
"fieldRef": {
"apiVersion": "v1",
"fieldPath": "metadata.name"
}
}
},
{
"name": "POD_NAMESPACE",
"valueFrom": {
"fieldRef": {
"apiVersion": "v1",
"fieldPath": "metadata.namespace"
}
}
}
],
"image": "quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.17.1",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/healthz",
"port": 10254,
"scheme": "HTTP"
},
"initialDelaySeconds": 10,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 1
},
"name": "nginx-ingress-controller",
"ports": [
{
"containerPort": 80,
"name": "http",
"protocol": "TCP"
},
{
"containerPort": 443,
"name": "https",
"protocol": "TCP"
}
],
"readinessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/healthz",
"port": 10254,
"scheme": "HTTP"
},
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 1
},
"resources": {},
"securityContext": {
"capabilities": {
"add": [
"NET_BIND_SERVICE"
],
"drop": [
"ALL"
]
},
"runAsUser": 33
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "nginx-ingress-serviceaccount",
"serviceAccountName": "nginx-ingress-serviceaccount",
"terminationGracePeriodSeconds": 30
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:29:36Z",
"lastUpdateTime": "2018-07-18T10:29:36Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 2,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1",
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1beta1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"k8s-app\":\"calico-typha\"},\"name\":\"calico-typha\",\"namespace\":\"kube-system\"},\"spec\":{\"replicas\":0,\"revisionHistoryLimit\":2,\"template\":{\"metadata\":{\"annotations\":{\"scheduler.alpha.kubernetes.io/critical-pod\":\"\"},\"labels\":{\"k8s-app\":\"calico-typha\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"TYPHA_LOGSEVERITYSCREEN\",\"value\":\"info\"},{\"name\":\"TYPHA_LOGFILEPATH\",\"value\":\"none\"},{\"name\":\"TYPHA_LOGSEVERITYSYS\",\"value\":\"none\"},{\"name\":\"TYPHA_CONNECTIONREBALANCINGMODE\",\"value\":\"kubernetes\"},{\"name\":\"TYPHA_DATASTORETYPE\",\"value\":\"kubernetes\"},{\"name\":\"TYPHA_HEALTHENABLED\",\"value\":\"true\"}],\"image\":\"quay.io/calico/typha:v0.7.4\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/liveness\",\"port\":9098},\"initialDelaySeconds\":30,\"periodSeconds\":30},\"name\":\"calico-typha\",\"ports\":[{\"containerPort\":5473,\"name\":\"calico-typha\",\"protocol\":\"TCP\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/readiness\",\"port\":9098},\"periodSeconds\":10}}],\"hostNetwork\":true,\"serviceAccountName\":\"calico-node\",\"tolerations\":[{\"key\":\"CriticalAddonsOnly\",\"operator\":\"Exists\"}]}}}}\n"
},
"creationTimestamp": "2018-07-18T08:54:52Z",
"generation": 1,
"labels": {
"k8s-app": "calico-typha"
},
"name": "calico-typha",
"namespace": "kube-system",
"resourceVersion": "2210",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/calico-typha",
"uid": "3bfd475b-8a68-11e8-804b-fa163e443e7b"
},
"spec": {
"progressDeadlineSeconds": 600,
"replicas": 0,
"revisionHistoryLimit": 2,
"selector": {
"matchLabels": {
"k8s-app": "calico-typha"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": "25%",
"maxUnavailable": "25%"
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"annotations": {
"scheduler.alpha.kubernetes.io/critical-pod": ""
},
"creationTimestamp": null,
"labels": {
"k8s-app": "calico-typha"
}
},
"spec": {
"containers": [
{
"env": [
{
"name": "TYPHA_LOGSEVERITYSCREEN",
"value": "info"
},
{
"name": "TYPHA_LOGFILEPATH",
"value": "none"
},
{
"name": "TYPHA_LOGSEVERITYSYS",
"value": "none"
},
{
"name": "TYPHA_CONNECTIONREBALANCINGMODE",
"value": "kubernetes"
},
{
"name": "TYPHA_DATASTORETYPE",
"value": "kubernetes"
},
{
"name": "TYPHA_HEALTHENABLED",
"value": "true"
}
],
"image": "quay.io/calico/typha:v0.7.4",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/liveness",
"port": 9098,
"scheme": "HTTP"
},
"initialDelaySeconds": 30,
"periodSeconds": 30,
"successThreshold": 1,
"timeoutSeconds": 1
},
"name": "calico-typha",
"ports": [
{
"containerPort": 5473,
"hostPort": 5473,
"name": "calico-typha",
"protocol": "TCP"
}
],
"readinessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/readiness",
"port": 9098,
"scheme": "HTTP"
},
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 1
},
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "ClusterFirst",
"hostNetwork": true,
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "calico-node",
"serviceAccountName": "calico-node",
"terminationGracePeriodSeconds": 30,
"tolerations": [
{
"key": "CriticalAddonsOnly",
"operator": "Exists"
}
]
}
}
},
"status": {
"conditions": [
{
"lastTransitionTime": "2018-07-18T08:54:52Z",
"lastUpdateTime": "2018-07-18T08:54:52Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
},
{
"lastTransitionTime": "2018-07-18T08:54:52Z",
"lastUpdateTime": "2018-07-18T08:54:52Z",
"message": "ReplicaSet \"calico-typha-89544cb75\" has successfully progressed.",
"reason": "NewReplicaSetAvailable",
"status": "True",
"type": "Progressing"
}
],
"observedGeneration": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1"
},
"creationTimestamp": "2018-07-18T10:26:50Z",
"generation": 1,
"labels": {
"k8s-app": "heapster",
"task": "monitoring"
},
"name": "heapster",
"namespace": "kube-system",
"resourceVersion": "11402",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/heapster",
"uid": "1565ff55-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"k8s-app": "heapster",
"task": "monitoring"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "heapster",
"task": "monitoring"
}
},
"spec": {
"containers": [
{
"command": [
"/heapster",
"--source=kubernetes:https://kubernetes.default",
"--sink=influxdb:http://monitoring-influxdb.kube-system.svc:8086"
],
"image": "gcr.io/google_containers/heapster-amd64:v1.5.3",
"imagePullPolicy": "IfNotPresent",
"name": "heapster",
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "heapster",
"serviceAccountName": "heapster",
"terminationGracePeriodSeconds": 30
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:26:51Z",
"lastUpdateTime": "2018-07-18T10:26:51Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 1,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1"
},
"creationTimestamp": "2018-07-18T08:31:23Z",
"generation": 3,
"labels": {
"k8s-app": "kube-dns"
},
"name": "kube-dns",
"namespace": "kube-system",
"resourceVersion": "138668",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/kube-dns",
"uid": "f4749bcf-8a64-11e8-804b-fa163e443e7b"
},
"spec": {
"progressDeadlineSeconds": 600,
"replicas": 1,
"revisionHistoryLimit": 10,
"selector": {
"matchLabels": {
"k8s-app": "kube-dns"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": "10%",
"maxUnavailable": 0
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "kube-dns"
}
},
"spec": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "beta.kubernetes.io/arch",
"operator": "In",
"values": [
"amd64"
]
}
]
}
]
}
}
},
"containers": [
{
"args": [
"--domain=cluster.local.",
"--dns-port=10053",
"--config-dir=/kube-dns-config",
"--v=2"
],
"env": [
{
"name": "PROMETHEUS_PORT",
"value": "10055"
}
],
"image": "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 5,
"httpGet": {
"path": "/healthcheck/kubedns",
"port": 10054,
"scheme": "HTTP"
},
"initialDelaySeconds": 60,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 5
},
"name": "kubedns",
"ports": [
{
"containerPort": 10053,
"name": "dns-local",
"protocol": "UDP"
},
{
"containerPort": 10053,
"name": "dns-tcp-local",
"protocol": "TCP"
},
{
"containerPort": 10055,
"name": "metrics",
"protocol": "TCP"
}
],
"readinessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/readiness",
"port": 8081,
"scheme": "HTTP"
},
"initialDelaySeconds": 3,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 5
},
"resources": {
"limits": {
"memory": "170Mi"
},
"requests": {
"cpu": "100m",
"memory": "70Mi"
}
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/kube-dns-config",
"name": "kube-dns-config"
}
]
},
{
"args": [
"-v=2",
"-logtostderr",
"-configDir=/etc/k8s/dns/dnsmasq-nanny",
"-restartDnsmasq=true",
"--",
"-k",
"--cache-size=1000",
"--no-negcache",
"--log-facility=-",
"--server=/cluster.local/127.0.0.1#10053",
"--server=/in-addr.arpa/127.0.0.1#10053",
"--server=/ip6.arpa/127.0.0.1#10053"
],
"image": "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 5,
"httpGet": {
"path": "/healthcheck/dnsmasq",
"port": 10054,
"scheme": "HTTP"
},
"initialDelaySeconds": 60,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 5
},
"name": "dnsmasq",
"ports": [
{
"containerPort": 53,
"name": "dns",
"protocol": "UDP"
},
{
"containerPort": 53,
"name": "dns-tcp",
"protocol": "TCP"
}
],
"resources": {
"requests": {
"cpu": "150m",
"memory": "20Mi"
}
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/etc/k8s/dns/dnsmasq-nanny",
"name": "kube-dns-config"
}
]
},
{
"args": [
"--v=2",
"--logtostderr",
"--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.cluster.local,5,SRV",
"--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.cluster.local,5,SRV"
],
"image": "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 5,
"httpGet": {
"path": "/metrics",
"port": 10054,
"scheme": "HTTP"
},
"initialDelaySeconds": 60,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 5
},
"name": "sidecar",
"ports": [
{
"containerPort": 10054,
"name": "metrics",
"protocol": "TCP"
}
],
"resources": {
"requests": {
"cpu": "10m",
"memory": "20Mi"
}
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "Default",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "kube-dns",
"serviceAccountName": "kube-dns",
"terminationGracePeriodSeconds": 30,
"tolerations": [
{
"key": "CriticalAddonsOnly",
"operator": "Exists"
},
{
"effect": "NoSchedule",
"key": "node-role.kubernetes.io/master"
}
],
"volumes": [
{
"configMap": {
"defaultMode": 420,
"name": "kube-dns",
"optional": true
},
"name": "kube-dns-config"
}
]
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T08:56:09Z",
"lastUpdateTime": "2018-07-18T08:56:09Z",
"message": "ReplicaSet \"kube-dns-6f4fd4bdf\" has successfully progressed.",
"reason": "NewReplicaSetAvailable",
"status": "True",
"type": "Progressing"
},
{
"lastTransitionTime": "2018-07-19T05:04:01Z",
"lastUpdateTime": "2018-07-19T05:04:01Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 3,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "4",
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1beta2\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"k8s-app\":\"kubernetes-dashboard\"},\"name\":\"kubernetes-dashboard\",\"namespace\":\"kube-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"k8s-app\":\"kubernetes-dashboard\"}},\"template\":{\"metadata\":{\"labels\":{\"k8s-app\":\"kubernetes-dashboard\"}},\"spec\":{\"containers\":[{\"args\":[\"--auto-generate-certificates\"],\"image\":\"k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":8443,\"scheme\":\"HTTPS\"},\"initialDelaySeconds\":30,\"timeoutSeconds\":30},\"name\":\"kubernetes-dashboard\",\"ports\":[{\"containerPort\":8443,\"protocol\":\"TCP\"}],\"volumeMounts\":[{\"mountPath\":\"/certs\",\"name\":\"kubernetes-dashboard-certs\"},{\"mountPath\":\"/tmp\",\"name\":\"tmp-volume\"}]}],\"serviceAccountName\":\"kubernetes-dashboard\",\"tolerations\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"}],\"volumes\":[{\"name\":\"kubernetes-dashboard-certs\",\"secret\":{\"secretName\":\"kubernetes-dashboard-certs\"}},{\"emptyDir\":{},\"name\":\"tmp-volume\"}]}}}}\n"
},
"creationTimestamp": "2018-07-18T10:28:14Z",
"generation": 8,
"labels": {
"k8s-app": "kubernetes-dashboard"
},
"name": "kubernetes-dashboard",
"namespace": "kube-system",
"resourceVersion": "1108687",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/kubernetes-dashboard",
"uid": "4716bf65-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"progressDeadlineSeconds": 600,
"replicas": 1,
"revisionHistoryLimit": 10,
"selector": {
"matchLabels": {
"k8s-app": "kubernetes-dashboard"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": "25%",
"maxUnavailable": "25%"
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "kubernetes-dashboard"
}
},
"spec": {
"containers": [
{
"args": [
"--tls-cert-file=dashboard.cer",
"--tls-key-file=dashboard.key",
"--heapster-host=http://heapster.kube-system.svc.cluster.local"
],
"image": "k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3",
"imagePullPolicy": "IfNotPresent",
"livenessProbe": {
"failureThreshold": 3,
"httpGet": {
"path": "/",
"port": 8443,
"scheme": "HTTPS"
},
"initialDelaySeconds": 30,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 30
},
"name": "kubernetes-dashboard",
"ports": [
{
"containerPort": 8443,
"protocol": "TCP"
}
],
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/certs",
"name": "kubernetes-dashboard-certs"
},
{
"mountPath": "/tmp",
"name": "tmp-volume"
}
]
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "kubernetes-dashboard",
"serviceAccountName": "kubernetes-dashboard",
"terminationGracePeriodSeconds": 30,
"tolerations": [
{
"effect": "NoSchedule",
"key": "node-role.kubernetes.io/master"
}
],
"volumes": [
{
"name": "kubernetes-dashboard-certs",
"secret": {
"defaultMode": 420,
"secretName": "kubernetes-dashboard-certs"
}
},
{
"emptyDir": {},
"name": "tmp-volume"
}
]
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:28:14Z",
"lastUpdateTime": "2018-07-25T08:47:55Z",
"message": "ReplicaSet \"kubernetes-dashboard-574b78bcb9\" has successfully progressed.",
"reason": "NewReplicaSetAvailable",
"status": "True",
"type": "Progressing"
},
{
"lastTransitionTime": "2018-07-25T08:48:01Z",
"lastUpdateTime": "2018-07-25T08:48:01Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 8,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1"
},
"creationTimestamp": "2018-07-18T10:25:38Z",
"generation": 1,
"labels": {
"k8s-app": "metrics-server"
},
"name": "metrics-server",
"namespace": "kube-system",
"resourceVersion": "11194",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/metrics-server",
"uid": "ea149753-8a74-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"k8s-app": "metrics-server"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "metrics-server"
},
"name": "metrics-server"
},
"spec": {
"containers": [
{
"command": [
"/metrics-server",
"--source=kubernetes.summary_api:''"
],
"image": "gcr.io/google_containers/metrics-server-amd64:v0.2.1",
"imagePullPolicy": "Always",
"name": "metrics-server",
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File"
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"serviceAccount": "metrics-server",
"serviceAccountName": "metrics-server",
"terminationGracePeriodSeconds": 30
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:25:38Z",
"lastUpdateTime": "2018-07-18T10:25:38Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 1,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1"
},
"creationTimestamp": "2018-07-18T10:26:50Z",
"generation": 1,
"labels": {
"k8s-app": "grafana",
"task": "monitoring"
},
"name": "monitoring-grafana",
"namespace": "kube-system",
"resourceVersion": "11414",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/monitoring-grafana",
"uid": "14fae9d8-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"k8s-app": "grafana",
"task": "monitoring"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "grafana",
"task": "monitoring"
}
},
"spec": {
"containers": [
{
"env": [
{
"name": "INFLUXDB_HOST",
"value": "monitoring-influxdb"
},
{
"name": "GF_SERVER_HTTP_PORT",
"value": "3000"
},
{
"name": "GF_AUTH_BASIC_ENABLED",
"value": "false"
},
{
"name": "GF_AUTH_ANONYMOUS_ENABLED",
"value": "true"
},
{
"name": "GF_AUTH_ANONYMOUS_ORG_ROLE",
"value": "Admin"
},
{
"name": "GF_SERVER_ROOT_URL",
"value": "/"
}
],
"image": "gcr.io/google_containers/heapster-grafana-amd64:v4.4.3",
"imagePullPolicy": "IfNotPresent",
"name": "grafana",
"ports": [
{
"containerPort": 3000,
"protocol": "TCP"
}
],
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/etc/ssl/certs",
"name": "ca-certificates",
"readOnly": true
},
{
"mountPath": "/var",
"name": "grafana-storage"
}
]
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"terminationGracePeriodSeconds": 30,
"volumes": [
{
"hostPath": {
"path": "/etc/ssl/certs",
"type": ""
},
"name": "ca-certificates"
},
{
"emptyDir": {},
"name": "grafana-storage"
}
]
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:26:50Z",
"lastUpdateTime": "2018-07-18T10:26:50Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 1,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
},
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"annotations": {
"deployment.kubernetes.io/revision": "1"
},
"creationTimestamp": "2018-07-18T10:26:51Z",
"generation": 1,
"labels": {
"k8s-app": "influxdb",
"task": "monitoring"
},
"name": "monitoring-influxdb",
"namespace": "kube-system",
"resourceVersion": "11425",
"selfLink": "/apis/extensions/v1beta1/namespaces/kube-system/deployments/monitoring-influxdb",
"uid": "15a130f7-8a75-11e8-804b-fa163e443e7b"
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"k8s-app": "influxdb",
"task": "monitoring"
}
},
"strategy": {
"rollingUpdate": {
"maxSurge": 1,
"maxUnavailable": 1
},
"type": "RollingUpdate"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"k8s-app": "influxdb",
"task": "monitoring"
}
},
"spec": {
"containers": [
{
"image": "gcr.io/google_containers/heapster-influxdb-amd64:v1.3.3",
"imagePullPolicy": "IfNotPresent",
"name": "influxdb",
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/data",
"name": "influxdb-storage"
}
]
}
],
"dnsPolicy": "ClusterFirst",
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {},
"terminationGracePeriodSeconds": 30,
"volumes": [
{
"emptyDir": {},
"name": "influxdb-storage"
}
]
}
}
},
"status": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2018-07-18T10:26:51Z",
"lastUpdateTime": "2018-07-18T10:26:51Z",
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
}
],
"observedGeneration": 1,
"readyReplicas": 1,
"replicas": 1,
"updatedReplicas": 1
}
}
],
"kind": "List",
"metadata": {
"resourceVersion": "",
"selfLink": ""
}
}
Thank you.
I should probably create add some tests before applying your patch.
As I'm a bit busy with other running projects, it will take me some time.
This is because replica key wont exist any more
I've added this and works for me if deployment['spec']['replicas'] != 0:
at