Kubernetes: Wait until another pod is ready

November 2, 2020

The idea is to wait inside an init-container until the health check is successful. The health check, in this case, is the HTTP response code equal to 200.

  • This init-container will continue after the service returns 200.
  • If the init-container doesn't complete, the container will not be executed.
initContainers:
- name: wait-for-webserver
  image: curlimages/curl:latest
  command: ["/bin/sh","-c"]
  args: ["while [ $(curl -sw '%{http_code}' http://webserver.svc.cluster.local -o /dev/null) -ne 200 ]; do sleep 5; echo 'Waiting for the webserver...'; done"]
Read more

Kubernetes: Global environment variables for pods

September 30, 2020

I was trying to insert a few global environment variables to every container running, so one of the options was Pod Presets but I realized this feature will be removed in Kubernetes 1.20.x, check this pull request).

One of the solution is create a ConfigMap and use the envFrom to define all of the ConfigMap's data as container environment variables.

Read more

Kubernetes multiple zones, autoscaling, and persistent volume

August 25, 2020

After a wild using Kubernetes in AWS and set-up persistent volumes via EBS, I faced a problem with evicted pods after they are re-schedule to another node; The issue was the EBS volumes are dedicated by zone, makes sense because the volumes work via networking and are dedicated per datacenter, for the network latency.

Read more


Trigger Jenkins jobs via API and curl

April 23, 2020

After upgrade Jenkins, we face an issue (Error 403 No valid crumb was included in the request). We have a few solution they need to trigger Jenkins's job externally via curl command before they start working. For trigger jobs we use a service account in Jenkins.

Read more