Получить список модулей для узла с указанным условием (не состоянием)? - PullRequest
0 голосов
/ 11 сентября 2018

Есть ли способ получить список модулей для указанного пространства имен, приложения, имени узла и состояния модуля?Применяя lablelSelector к строке запроса, можно указать имя приложения, используя fieldSelector Я могу выбрать имя узла (spec.nodeName==node) и даже фазу (status.phase==Running).Но status.phase вернет все модули, которые находятся в указанной фазе, включая те, которые на самом деле находятся в CrashLoopBackOff или расположены на потерянных узлах.

После анализа ответа JSON я обнаружил, что есть раздел «status»на самом деле это поле «status.phase», упомянутое выше, и раздел «условия», в котором хранится массив / список записей нескольких «типов», описывающих текущее состояние соответствующих параметров.Среди них есть подраздел (словарь терминов Python), в котором есть "type" : "Ready" и "status" : <value>, что мне и нужно.

Полный раздел ответа выглядит следующим образом:

   "status": {
    "phase": "Running",
    "conditions": [
      {
        "type": "Initialized",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T15:49:09Z"
      },
      {
        "type": "Ready",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T19:05:01Z"
      },
      {
        "type": "ContainersReady",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": null
      },
      {
        "type": "PodScheduled",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T15:49:09Z"
      }
    ]

Очевидно, что labelSelector и fieldSelector работают с использованием соответствующих разделов / полей ответа JSON.Но я не смог найти способ применить что-то вроде fieldSelector для подраздела «условия».Как и fieldSelector = condition.type.Ready == True.

Конечно, я могу проанализировать ответ в Python и выбрать только те условия, которые мне нужны, но это мне не подходит.

У кого-нибудь есть идея, как указать условие pod в запросе API?

В настоящее время я использую: /api/v1/namespaces/<namespace>/pods?labelSeletor=app%3D<appname>&fieldSelector=status.phase%3D%3DRunning,spec.nodeName%3D%3D<nodename>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...