Хелм, Кубернетес, - как ждать, пока стручки будут готовы? - PullRequest
0 голосов
/ 11 мая 2018

Я создаю конвейер CI / CD.

Я запускаю helm install --wait --timeout 300 ....Но это на самом деле не ждет, просто возвращается, когда статус «релиза» равен DEPLOYED.

Итак, я вижу в kubectl get pods --namespace default -l 'release=${TAG}' -o yaml несколько вещей, которые можно использовать:

- kind: Pod
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: 2018-05-11T00:30:46Z
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: 2018-05-11T00:30:48Z
      status: "True"
      type: Ready

Так что, я думаю, я посмотрю, когда Ready условие станет «Истиной».

  1. Это кажется немного неправильным ... Все решают это, поэтому я предполагаю, что естькакая-то особенность kubectl для этого есть?

  2. Правильно ли запрашивать?(См. Ссылка Kubernetes JSONPath )

    kubectl get pods --namespace default -l 'release = sc8757070' -o jsonpath = '{. Items [*]. Status.conditions [? (@ .type == "Готово")]. status} '

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Есть хороший вариант -n | --namespace NAMESPACE, который позволяет ожидать развертывания в разных пространствах имен, например, в kube-system:

kubectl rollout status deployment tiller-deploy -n kube-system
0 голосов
/ 11 мая 2018

Вы можете использовать kubectl rollout status

$ kubectl rollout status -h
Show the status of the rollout.

By default 'rollout status' will watch the status of the latest rollout until
it's done...
...