Рубрики
Uncategorized

Простой трюк, чтобы получить определенные элементы из выхода Kubernetes Kubectl

Обычно большинство объектов Kubernetes довольно большинству, так как у них есть пространство имен, имя, этикетки, шаблон, спецификация … Помечено с Куберовщиком, производительностью, дежоптом, докер.

Обычно большинство объектов Kubernetes довольно велики, так как у них есть пространство имен, имя, этикетки, шаблон, спецификация и куча других полей. Когда вам нужно получить только одну или несколько полей, он может получить утомительную прокрутку вверх и вниз в свой термин, ищущий его:) К счастью, kubectl Поддерживает форматирование вашего вывода с помощью Path JSON, который позволяет вам указать формат и значения самостоятельно.

В следующем примере я покажу, как отформатировать вывод пользовательских ресурсов из Оператор, который я недавно написал Поэтому легко получить данные из поля статуса.

Во-первых, давайте посмотрим, какие данные доступны:

$ kubectl get  webhookrelayforwards.forward.webhookrelay.com -o json
{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "forward.webhookrelay.com/v1",
            "kind": "WebhookRelayForward",
            "metadata": {
                "annotations": {
                    "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"forward.webhookrelay.com/v1\",\"kind\":\"WebhookRelayForward\",\"metadata\":{\"annotations\":{},\"name\":\"forward-to-jenkins\",\"namespace\":\"jenkins\"},\"spec\":{\"buckets\":[{\"inputs\":[{\"description\":\"Endpoint for GitHub\",\"name\":\"public-endpoint\",\"responseBody\":\"OK\",\"responseStatusCode\":200}],\"name\":\"jenkins-whr-operator\",\"outputs\":[{\"destination\":\"http://jenkins-operator-http-jenkins:8080/github-webhook/\",\"name\":\"jenkins\"}]}],\"image\":\"webhookrelay/webhookrelayd-ubi8:latest\"}}\n"
                },
                "creationTimestamp": "2020-07-05T12:52:11Z",
                "generation": 2,
                "name": "forward-to-jenkins",
                "namespace": "jenkins",
                "resourceVersion": "270615",
                "selfLink": "/apis/forward.webhookrelay.com/v1/namespaces/jenkins/webhookrelayforwards/forward-to-jenkins",
                "uid": "9d75809c-1795-45e2-a437-bb89b22bdac4"
            },
            "spec": {
                "buckets": [
                    {
                        "inputs": [
                            {
                                "description": "Endpoint for GitHub",
                                "name": "public-endpoint",
                                "responseBody": "OK",
                                "responseStatusCode": 200
                            }
                        ],
                        "name": "jenkins-whr-operator",
                        "outputs": [
                            {
                                "destination": "http://jenkins-operator-http-jenkins:8080/github-webhook/",
                                "name": "jenkins"
                            }
                        ]
                    }
                ],
                "image": "webhookrelay/webhookrelayd-ubi8:latest"
            },
            "status": {
                "agentStatus": "Running",
                "publicEndpoints": [
                    "https://k0yv9ip5sxxp55ncsu936k.hooks.webhookrelay.com"
                ],
                "ready": true,
                "routingStatus": "Configured"
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": "",
        "selfLink": ""
    }
}

Здесь, если мы хотим схватить только ценность от Публиковые точки мы снова указываем ресурс и дополнительные jsonpath запрос:

$ kubectl get webhookrelayforwards.forward.webhookrelay.com forward-to-jenkins -o 'jsonpath={.status.publicEndpoints[0]}'
https://k0yv9ip5sxxp55ncsu936k.hooks.webhookrelay.com

Продолжайте и попробуйте на своих собственных кластере кубернанов!:)

Вы можете найти больше примеров в официальных документах здесь: https://kubernetes.io/docs/reference/kubectl/jsonpath/ Отказ

Оригинал: «https://dev.to/krusenas/simple-trick-to-get-specific-elements-from-kubernetes-kubectl-output-3502»