Dep_check init containers fail when quay.io/airshipit/kubernetes-entrypoint:v1.0.0 is used
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openstack-helm |
Invalid
|
Undecided
|
Unassigned |
Bug Description
I'm deploying openstack-helm charts but init containers fail to finish due error
command.go:14: Cannot find a binary echo : exec: \"echo\": executable file not found in $PATH"
when quay.io/
Here's example run with both images:
# grep dep_check ../openstack-
dep_check: quay.io/
# dep_check: quay.io/
- dep_check
# ./tools/
+ for NAMESPACE in openstack
+ OSH_EXTRA_
+ tee /tmp/ingress-
pod:
replicas:
ingress: 2
error_page: 2
+ helm upgrade --install ingress-openstack /root/src/
Release "ingress-openstack" does not exist. Installing it now.
NAME: ingress-openstack
LAST DEPLOYED: Mon Nov 18 09:14:53 2019
NAMESPACE: openstack
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
ingress-bin 2 0s
ingress-conf 3 0s
ingress-
ingress-
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
ingress 0/2 2 0 0s
ingress-error-pages 0/2 2 0 0s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
ingress-
ingress-
ingress-
ingress-
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress ClusterIP 10.43.203.174 <none> 80/TCP,
ingress-error-pages ClusterIP None <none> 80/TCP 0s
ingress-exporter ClusterIP 10.43.94.41 <none> 10254/TCP 0s
==> v1/ServiceAccount
NAME SECRETS AGE
ingress-error-pages 1 0s
ingress-
==> v1beta1/ClusterRole
NAME AGE
ingress-
==> v1beta1/
NAME AGE
ingress-
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
openstack-
==> v1beta1/Role
NAME AGE
ingress-
==> v1beta1/RoleBinding
NAME AGE
ingress-
+ ./tools/
Containers failed to start after 900 seconds
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-
ingress-
ingress-
ingress-
Some pods are in pending state:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-
ingress-
ingress-
ingress-
# kubectl describe pods -n openstack
Name: ingress-
Namespace: openstack
Priority: 0
Node: worker-
Start Time: Mon, 18 Nov 2019 09:14:54 +0200
Labels: app=ingress-api
Annotations: cni.projectcali
Status: Pending
IP: 10.42.2.185
IPs: <none>
Controlled By: ReplicaSet/
Init Containers:
init:
Container ID: docker:
Image: quay.io/
Image ID: docker-
Port: <none>
Host Port: <none>
Command:
kubernete
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Mon, 18 Nov 2019 09:35:54 +0200
Finished: Mon, 18 Nov 2019 09:35:54 +0200
Ready: False
Restart Count: 9
Environment:
POD_NAME: ingress-
NAMESPACE: openstack (v1:metadata.
INTERFACE
PATH: /usr/local/
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
COMMAND: echo done
Mounts:
/
Containers:
ingress:
Container ID:
Image: quay.io/
Image ID:
Ports: 80/TCP, 443/TCP, 18080/TCP, 10254/TCP, 8181/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP
Command:
/
start
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://
Readiness: http-get http://
Environment:
POD_NAME: ingress-
POD_
PORT_HTTP: 80
PORT_HTTPS: 443
PORT_STATUS: 18080
PORT_HEALTHZ: 10254
DEFAULT_
RELEASE_NAME: ingress-openstack
ERROR_
INGRESS_
Mounts:
/tmp from pod-tmp (rw)
/
/
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
pod-tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
ingress-bin:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: ingress-bin
Optional: false
ingress-
Type: Secret (a volume populated by a Secret)
SecretName: ingress-
Optional: false
QoS Class: BestEffort
Node-Selectors: openstack-
Tolerations: node.kubernetes
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22m default-scheduler Successfully assigned openstack/
Normal Pulled 21m (x5 over 22m) kubelet, worker-2 Container image "quay.io/
Normal Created 21m (x5 over 22m) kubelet, worker-2 Created container init
Normal Started 21m (x5 over 22m) kubelet, worker-2 Started container init
Warning BackOff 2m31s (x95 over 22m) kubelet, worker-2 Back-off restarting failed container
Name: ingress-
Namespace: openstack
Priority: 0
Node: worker-0/172.16.0.4
Start Time: Mon, 18 Nov 2019 09:14:54 +0200
Labels: app=ingress-api
Annotations: cni.projectcali
Status: Pending
IP: 10.42.7.205
IPs: <none>
Controlled By: ReplicaSet/
Init Containers:
init:
Container ID: docker:
Image: quay.io/
Image ID: docker-
Port: <none>
Host Port: <none>
Command:
kubernete
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Mon, 18 Nov 2019 09:36:16 +0200
Finished: Mon, 18 Nov 2019 09:36:16 +0200
Ready: False
Restart Count: 9
Environment:
POD_NAME: ingress-
NAMESPACE: openstack (v1:metadata.
INTERFACE
PATH: /usr/local/
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
COMMAND: echo done
Mounts:
/
Containers:
ingress:
Container ID:
Image: quay.io/
Image ID:
Ports: 80/TCP, 443/TCP, 18080/TCP, 10254/TCP, 8181/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP
Command:
/
start
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://
Readiness: http-get http://
Environment:
POD_NAME: ingress-
POD_
PORT_HTTP: 80
PORT_HTTPS: 443
PORT_STATUS: 18080
PORT_HEALTHZ: 10254
DEFAULT_
RELEASE_NAME: ingress-openstack
ERROR_
INGRESS_
Mounts:
/tmp from pod-tmp (rw)
/
/
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
pod-tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
ingress-bin:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: ingress-bin
Optional: false
ingress-
Type: Secret (a volume populated by a Secret)
SecretName: ingress-
Optional: false
QoS Class: BestEffort
Node-Selectors: openstack-
Tolerations: node.kubernetes
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22m default-scheduler Successfully assigned openstack/
Normal Pulled 21m (x5 over 22m) kubelet, worker-0 Container image "quay.io/
Normal Created 21m (x5 over 22m) kubelet, worker-0 Created container init
Normal Started 21m (x5 over 22m) kubelet, worker-0 Started container init
Warning BackOff 2m35s (x95 over 22m) kubelet, worker-0 Back-off restarting failed container
Name: ingress-
Namespace: openstack
Priority: 0
Node: worker-1/172.16.0.8
Start Time: Mon, 18 Nov 2019 09:14:54 +0200
Labels: application=ingress
Annotations: cni.projectcali
Status: Pending
IP: 10.42.4.192
IPs: <none>
Controlled By: ReplicaSet/
Init Containers:
init:
Container ID: docker:
Image: quay.io/
Image ID: docker-
Port: <none>
Host Port: <none>
Command:
kubernete
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Mon, 18 Nov 2019 09:36:14 +0200
Finished: Mon, 18 Nov 2019 09:36:14 +0200
Ready: False
Restart Count: 9
Environment:
POD_NAME: ingress-
NAMESPACE: openstack (v1:metadata.
INTERFACE
PATH: /usr/local/
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
COMMAND: echo done
Mounts:
/
Containers:
ingress-
Container ID:
Image: gcr.io/
Image ID:
Port: 8080/TCP
Host Port: 0/TCP
Command:
/
start
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://
Environment: <none>
Mounts:
/tmp from pod-tmp (rw)
/
/
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
pod-tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
ingress-bin:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: ingress-bin
Optional: false
ingress-
Type: Secret (a volume populated by a Secret)
SecretName: ingress-
Optional: false
QoS Class: BestEffort
Node-Selectors: openstack-
Tolerations: node.kubernetes
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22m default-scheduler Successfully assigned openstack/
Normal Pulled 21m (x5 over 22m) kubelet, worker-1 Container image "quay.io/
Normal Created 21m (x5 over 22m) kubelet, worker-1 Created container init
Normal Started 21m (x5 over 22m) kubelet, worker-1 Started container init
Warning BackOff 2m35s (x95 over 22m) kubelet, worker-1 Back-off restarting failed container
Name: ingress-
Namespace: openstack
Priority: 0
Node: worker-
Start Time: Mon, 18 Nov 2019 09:14:54 +0200
Labels: application=ingress
Annotations: cni.projectcali
Status: Pending
IP: 10.42.2.184
IPs: <none>
Controlled By: ReplicaSet/
Init Containers:
init:
Container ID: docker:
Image: quay.io/
Image ID: docker-
Port: <none>
Host Port: <none>
Command:
kubernete
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Mon, 18 Nov 2019 09:36:23 +0200
Finished: Mon, 18 Nov 2019 09:36:23 +0200
Ready: False
Restart Count: 9
Environment:
POD_NAME: ingress-
NAMESPACE: openstack (v1:metadata.
INTERFACE
PATH: /usr/local/
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
DEPENDENC
COMMAND: echo done
Mounts:
/
Containers:
ingress-
Container ID:
Image: gcr.io/
Image ID:
Port: 8080/TCP
Host Port: 0/TCP
Command:
/
start
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://
Environment: <none>
Mounts:
/tmp from pod-tmp (rw)
/
/
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
pod-tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
ingress-bin:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: ingress-bin
Optional: false
ingress-
Type: Secret (a volume populated by a Secret)
SecretName: ingress-
Optional: false
QoS Class: BestEffort
Node-Selectors: openstack-
Tolerations: node.kubernetes
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22m default-scheduler Successfully assigned openstack/
Normal Pulled 21m (x5 over 22m) kubelet, worker-2 Container image "quay.io/
Normal Created 21m (x5 over 22m) kubelet, worker-2 Created container init
Normal Started 21m (x5 over 22m) kubelet, worker-2 Started container init
Warning BackOff 2m32s (x96 over 22m) kubelet, worker-2 Back-off restarting failed container
Init pod log:
{
...
"_source": {
"message": "Entrypoint ERROR: 2019/11/18 07:31:12 command.go:14: Cannot find a binary echo : exec: \"echo\": executable file not found in $PATH",
"@version": "1",
...
},
...
"kubernetes": {
"labels": {
},
"namespace": "openstack",
"container": {
"name": "init"
},
"replicaset": {
"name": "ingress-
},
"node": {
"name": "worker-2"
},
"pod": {
"uid": "1e76ae51-
"name": "ingress-
}
...
# grep dep_check ../openstack-
# dep_check: quay.io/
dep_check: quay.io/
- dep_check
# ./tools/
+ for NAMESPACE in openstack
+ OSH_EXTRA_
+ tee /tmp/ingress-
pod:
replicas:
ingress: 2
error_page: 2
+ helm upgrade --install ingress-openstack /root/src/
Release "ingress-openstack" does not exist. Installing it now.
NAME: ingress-openstack
LAST DEPLOYED: Mon Nov 18 09:40:17 2019
NAMESPACE: openstack
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
ingress-bin 2 1s
ingress-conf 3 1s
ingress-
ingress-
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
ingress 0/2 2 0 1s
ingress-error-pages 0/2 2 0 1s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
ingress-
ingress-
ingress-
ingress-
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress ClusterIP 10.43.227.98 <none> 80/TCP,
ingress-error-pages ClusterIP None <none> 80/TCP 1s
ingress-exporter ClusterIP 10.43.252.28 <none> 10254/TCP 1s
==> v1/ServiceAccount
NAME SECRETS AGE
ingress-error-pages 1 1s
ingress-
==> v1beta1/ClusterRole
NAME AGE
ingress-
==> v1beta1/
NAME AGE
ingress-
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
openstack-
==> v1beta1/Role
NAME AGE
ingress-
==> v1beta1/RoleBinding
NAME AGE
ingress-
+ ./tools/
+ helm status ingress-openstack
LAST DEPLOYED: Mon Nov 18 09:40:17 2019
NAMESPACE: openstack
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
ingress-bin 2 17s
ingress-conf 3 17s
ingress-
ingress-
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
ingress 2/2 2 2 17s
ingress-error-pages 2/2 2 2 17s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
ingress-
ingress-
ingress-
ingress-
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress ClusterIP 10.43.227.98 <none> 80/TCP,
ingress-error-pages ClusterIP None <none> 80/TCP 17s
ingress-exporter ClusterIP 10.43.252.28 <none> 10254/TCP 17s
==> v1/ServiceAccount
NAME SECRETS AGE
ingress-error-pages 1 17s
ingress-
==> v1beta1/ClusterRole
NAME AGE
ingress-
==> v1beta1/
NAME AGE
ingress-
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
openstack-
==> v1beta1/Role
NAME AGE
ingress-
==> v1beta1/RoleBinding
NAME AGE
ingress-
# kubectl get pods -n openstack
NAME READY STATUS RESTARTS AGE
ingress-
ingress-
ingress-
ingress-
Changed in openstack-helm: | |
status: | New → Invalid |
I think you need a newer version of helm-toolkit/ templates/ snippets/ kubernetes_ entrypoint_ init_container. tpl to use the new container image. The relevant change is part of this commit: https:/ /github. com/openstack/ openstack- helm-infra/ commit/ b50fae62a4ad099 2ce877cd632800e 1eed5f71a9# diff-dbbe99bc82 a076d89ce11d442 3d32cd7