Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
fabric8io__kubernetes-client_CVE-2021-4178_5-0-2 — Java-клиент, предоставляющий свободный DSL-доступ к REST API Kubernetes и OpenShift для управления облачной инфраструктурой, модулями, сервисами и конфигурациями с поддержкой аутентификации и TLS. | Kitploit
Инструменты/GitHubGitHub/shoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2
Аутентификация и авторизацияБезопасность облачной инфраструктурыБезопасность контейнеровАудит конфигурацииБезопасность облачных средБезопасность API
GitHubshoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2

fabric8io__kubernetes-client_CVE-2021-4178_5-0-2

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Java-клиент, предоставляющий свободный DSL-доступ к REST API Kubernetes и OpenShift для управления облачной инфраструктурой, модулями, сервисами и конфигурациями с поддержкой аутентификации и TLS.

Репозиторий
1 год назадЕщё не проверено

Kubernetes & OpenShift Java-клиент Join the chat at https://gitter.im/fabric8io/kubernetes-client

Этот клиент предоставляет доступ к полным REST API Kubernetes и OpenShift через выразительный DSL.

Build Sonar Scanner E2E Tests Release Twitter Bugs

  • kubernetes-client: Maven Central Javadocs
  • kubernetes-model-core: Maven Central Javadocs
  • openshift-client: Maven Central Javadocs
  • knative-client: Maven Central Javadocs
  • tekton-client:
  • Использование
    • Создание клиента
    • Настройка клиента
    • Загрузка ресурсов из внешних источников
    • Передача ссылки на ресурс клиенту
    • Адаптация клиента
      • Адаптация и закрытие
  • Макетирование Kubernetes
  • Кто использует Fabric8 Kubernetes Client?
  • Операторы Kubernetes на Java, написанные с использованием Fabric8 Kubernetes Client
  • Матрица совместимости Kubernetes и Red Hat OpenShift
  • Шпаргалка по Kubernetes Client
  • Аналоги kubectl на Java

Использование

Создание клиента

Самый простой способ создать клиент:```java KubernetesClient client = new DefaultKubernetesClient();

root@kitploit:~
`DefaultOpenShiftClient` реализует как интерфейс `KubernetesClient`, так и `OpenShiftClient`, поэтому если вам нужны расширения OpenShift, такие как `Build`s, и т.д., то просто сделайте:```java
OpenShiftClient osClient = new DefaultOpenShiftClient();

Настройка клиента

Будут использоваться настройки из различных источников в следующем порядке приоритета:

  • Системные свойства
  • Переменные окружения
  • Файл конфигурации kubeconfig
  • Токен сервисного аккаунта и смонтированный сертификат ЦС

Системные свойства имеют приоритет над переменными окружения. Следующие системные свойства и переменные окружения могут использоваться для настройки:

В качестве альтернативы вы можете использовать ConfigBuilder для создания объекта конфигурации для клиента Kubernetes:```java Config config = new ConfigBuilder().withMasterUrl("https://mymaster.com").build(); KubernetesClient client = new DefaultKubernetesClient(config);

root@kitploit:~
Использование DSL одинаково для всех ресурсов.

Список ресурсов:```java
NamespaceList myNs = client.namespaces().list();

ServiceList myServices = client.services().list();

ServiceList myNsServices = client.services().inNamespace("default").list();

Получить ресурс:```java Namespace myns = client.namespaces().withName("myns").get();

Service myservice = client.services().inNamespace("default").withName("myservice").get();

root@kitploit:~
Удалить:```java
Namespace myns = client.namespaces().withName("myns").delete();

Service myservice = client.services().inNamespace("default").withName("myservice").delete();

Редактирование ресурсов использует встроенные конструкторы из модели Kubernetes:```java Namespace myns = client.namespaces().withName("myns").edit(n -> new NamespaceBuilder(n) .editMetadata() .addToLabels("a", "label") .endMetadata() .build());

Service myservice = client.services().inNamespace("default").withName("myservice").edit(s -> new ServiceBuilder(s) .editMetadata() .addToLabels("another", "label") .endMetadata() .build());

root@kitploit:~
В том же духе вы можете встраивать сборщики для создания:```java
Namespace myns = client.namespaces().create(new NamespaceBuilder()
                   .withNewMetadata()
                     .withName("myns")
                     .addToLabels("a", "label")
                   .endMetadata()
                   .build());

Service myservice = client.services().inNamespace("default").create(new ServiceBuilder()
                     .withNewMetadata()
                       .withName("myservice")
                       .addToLabels("another", "label")
                     .endMetadata()
                     .build());

Вы также можете задать apiVersion ресурса, как в случае с SecurityContextConstraints :```java SecurityContextConstraints scc = new SecurityContextConstraintsBuilder() .withApiVersion("v1") .withNewMetadata().withName("scc").endMetadata() .withAllowPrivilegedContainer(true) .withNewRunAsUser() .withType("RunAsAny") .endRunAsUser() .build();

root@kitploit:~
### Отслеживание событий

Используйте `io.fabric8.kubernetes.api.model.Event` в качестве T для Watcher:```java
client.events().inAnyNamespace().watch(new Watcher<Event>() {

  @Override
  public void eventReceived(Action action, Event resource) {
    System.out.println("event " + action.name() + " " + resource.toString());
  }

  @Override
  public void onClose(KubernetesClientException cause) {
    System.out.println("Watcher close due to " + cause);
  }

});

Работа с расширениями

API Kubernetes определяет множество расширений, таких как daemonSets, jobs, ingresses и т.д., которые все доступны в DSL extensions():

например, чтобы вывести список заданий...``` jobs = client.batch().jobs().list();

root@kitploit:~
### Загрузка ресурсов из внешних источников

Бывают случаи, когда нужно прочитать ресурс из внешнего источника, а не определять его с помощью DSL клиента.
Для таких случаев клиент позволяет загрузить ресурс из:

- Файла *(Поддерживает java.io.File и java.lang.String)*
- URL-адреса
- Потока ввода

После загрузки ресурса с ним можно работать так же, как если бы вы создали его самостоятельно.

Например, давайте прочитаем pod из yml-файла и поработаем с ним:

    Pod refreshed = client.load('/path/to/a/pod.yml').fromServer().get();
    Boolean deleted = client.load('/workspace/pod.yml').delete();
    LogWatch handle = client.load('/workspace/pod.yml').watchLog(System.out);

### Передача ссылки на ресурс клиенту

В том же духе можно использовать объект, созданный извне (либо ссылку, либо его строковое представление).

Например:

    Pod pod = someThirdPartyCodeThatCreatesAPod();
    Boolean deleted = client.resource(pod).delete();

### Адаптация клиента

Клиент поддерживает подключаемые адаптеры. Примером адаптера является [OpenShift Adapter](https://github.com/shoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2/blob/HEAD/openshift-client/src/main/java/io/fabric8/openshift/client/OpenShiftExtensionAdapter.java), который позволяет адаптировать существующий экземпляр [KubernetesClient](https://github.com/shoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2/blob/HEAD/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/KubernetesClient.java) к [OpenShiftClient](https://github.com/shoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2/blob/HEAD/openshift-client/src/main/java/io/fabric8/openshift/client/OpenShiftClient.java).

 Например:```java
KubernetesClient client = new DefaultKubernetesClient();

OpenShiftClient oClient = client.adapt(OpenShiftClient.class);

Клиент также поддерживает метод isAdaptable(), который проверяет, возможна ли адаптация, и возвращает true, если это так.```java KubernetesClient client = new DefaultKubernetesClient(); if (client.isAdaptable(OpenShiftClient.class)) { OpenShiftClient oClient = client.adapt(OpenShiftClient.class); } else { throw new Exception("Adapting to OpenShiftClient not support. Check if adapter is present, and that env provides /oapi root path."); }

root@kitploit:~
#### Адаптация и закрытие
Обратите внимание, что при использовании adapt() оба объекта — адаптируемый и целевой — будут использовать одни и те же ресурсы (базовый HTTP-клиент, пулы потоков и т.д.).
Это означает, что close() не обязательно вызывать на каждом экземпляре, созданном через adapt.
Вызов close() на любом из экземпляров, управляемых через adapt, или на исходном экземпляре, корректно очистит все ресурсы, и ни один из экземпляров больше не будет пригоден для использования.


## Мокирование Kubernetes

Наряду с клиентом данный проект также предоставляет мок-сервер Kubernetes, который можно использовать для тестирования.
Мок-сервер основан на `https://github.com/square/okhttp/tree/master/mockwebserver`, но дополнен возможностями DSL и функциями, предоставляемыми `https://github.com/fabric8io/mockwebserver`.

Мок-веб-сервер имеет два режима работы:

- Режим ожиданий (Expectations mode)
- Режим CRUD (CRUD mode)

### Режим ожиданий

Это типичный режим, в котором сначала задаются ожидаемые HTTP-запросы и ответы для каждого запроса.
Более подробно об использовании можно узнать по адресу: https://github.com/fabric8io/mockwebserver

Этот режим широко использовался для тестирования самого клиента. Обязательно ознакомьтесь с [kubernetes-test](https://github.com/shoucheng3/fabric8io__kubernetes-client_cve-2021-4178_5-0-2/blob/HEAD/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock).

Чтобы добавить сервер Kubernetes в ваш тест:```java
@Rule
public KubernetesServer server = new KubernetesServer();

Режим CRUD

Определение каждого отдельного запроса и ответа может утомлять. Учитывая, что в большинстве случаев mock-веб-сервер используется для выполнения простых CRUD-операций, был добавлен режим crud. При использовании режима crud mock-веб-сервер будет хранить, читать, обновлять и удалять ресурсы Kubernetes, используя карту в памяти, и будет вести себя как настоящий сервер API.

Чтобы добавить сервер Kubernetes в режиме crud в ваш тест:```java @Rule public KubernetesServer server = new KubernetesServer(true, true);

root@kitploit:~
Затем вы можете использовать сервер следующим образом:```java
@Test
public void testInCrudMode() {
    KubernetesClient client = server.getClient();
    final CountDownLatch deleteLatch = new CountDownLatch(1);
    final CountDownLatch closeLatch = new CountDownLatch(1);

    //CREATE
    client.pods().inNamespace("ns1").create(new PodBuilder().withNewMetadata().withName("pod1").endMetadata().build());

    //READ
    podList = client.pods().inNamespace("ns1").list();
    assertNotNull(podList);
    assertEquals(1, podList.getItems().size());

    //WATCH
    Watch watch = client.pods().inNamespace("ns1").withName("pod1").watch(new Watcher<Pod>() {
        @Override
        public void eventReceived(Action action, Pod resource) {
            switch (action) {
                case DELETED:
                    deleteLatch.countDown();
                    break;
                default:
                    throw new AssertionFailedError(action.toString().concat(" isn't recognised."));
            }
        }

        @Override
        public void onClose(KubernetesClientException cause) {
            closeLatch.countDown();
        }
    });

    //DELETE
    client.pods().inNamespace("ns1").withName("pod1").delete();

    //READ AGAIN
    podList = client.pods().inNamespace("ns1").list();
    assertNotNull(podList);
    assertEquals(0, podList.getItems().size());

    assertTrue(deleteLatch.await(1, TimeUnit.MINUTES));
    watch.close();
    assertTrue(closeLatch.await(1, TimeUnit.MINUTES));
}

Поддержка JUnit5 через расширение

Вы можете использовать механизм мокирования KubernetesClient с JUnit5. Поскольку он не поддерживает @Rule и @ClassRule, существует специальная аннотация @EnableKubernetesMockClient. Если вы хотите создавать экземпляр мокированного KubernetesClient для каждого теста (JUnit4 @Rule), вам нужно объявить экземпляр KubernetesClient, как показано ниже.```java @EnableKubernetesMockClient class ExampleTest {

root@kitploit:~
KubernetesClient client;

@Test
public void testInStandardMode() {
        ...
}

}

root@kitploit:~
Если вы хотите определить статический экземпляр mock-сервера для всех тестов (JUnit4 `@ClassRule`), вам нужно объявить экземпляр `KubernetesClient`, как показано ниже.
Вы также можете включить crudMode с помощью поля аннотации `crud`.```java
@EnableKubernetesMockClient(crud = true)
class ExampleTest {

    static KubernetesClient client;

    @Test
    public void testInCrudMode() {
            ...
    }
}

Матрица совместимости

Матрица совместимости с Kubernetes:

Матрица совместимости с OpenShift:

Примечание: Эта матрица подготовлена на основе интеграционных тестов, проведённых на разных версиях OpenShift.

Основные изменения в Kubernetes Client 4.0.0

Все используемые здесь объекты ресурсов соответствуют OpenShift 3.9.0 и Kubernetes 1.9.0. Все объекты ресурсов будут содержать все поля согласно OpenShift 3.9.0 и Kubernetes 1.9.0.

  • SecurityContextConstraints перемещён из Kubernetes Client в OpenShift client
  • Job dsl присутствует как в batch, так и в extensions (extensions признан устаревшим)
  • DaemonSet dsl присутствует как в apps, так и в extensions (extensions признан устаревшим)
  • Deployment dsl присутствует как в apps, так и в extensions (extensions признан устаревшим)
  • ReplicaSet dsl присутствует как в apps, так и в extensions (extensions признан устаревшим)
  • NetworkPolicy dsl присутствует как в network, так и в extensions (extensions признан устаревшим)
  • Storage Class перемещён из client base DSL в storage DSL
  • PodSecurityPolicies перемещены из client base DSL и только в

Кто использует Kubernetes и OpenShift Java client?

Расширения:

  • Istio API
  • Service Catalog API
  • Knative
  • Tekton

Фреймворки/Библиотеки/Инструменты:

  • Arquillian Cube
  • Apache Camel
  • Apache Spark
  • Jaeger Kubernetes
  • Loom
  • Microsoft Azure Libraries for Java
  • Spinnaker Halyard
  • Spring Cloud Connectors for Kubernetes
  • Spring Cloud Kubernetes

Плагины CI:

  • Deployment Pipeline Plugin (Jenkins)
  • Kubernetes Eleastic Agent (GoCD)
  • Kubernetes Plugin (Jenkins)
  • Kubernetes Pipeline Plugin (Jenkins)
  • OpenShift Sync Plugin (Jenkins)
  • Kubernetes Plugin (Teamcity from Jetbrains)
  • Kubernetes Agents for Bamboo (WindTunnel Technologies)

Инструменты сборки:

  • Fabric8 Maven Plugin
  • Eclipse JKube
  • Gradle Kubernetes Plugin

Платформы:

  • Apache Openwhisk
  • Eclipse che
  • EnMasse
  • Openshift.io (Launcher service)
  • Spotify Styx
  • Strimzi
  • Syndesis

Проприетарные платформы:

  • vCommander

По мере роста нашего сообщества мы хотим отслеживать наших пользователей. Пожалуйста, отправьте PR с названием вашей организации или сообщества.

Тесты, которые мы запускаем для каждого нового Pull Request

Ниже приведены ссылки на GitHub Actions и Jenkins для тестов, которые запускаются для каждого нового Pull Request. Вы также можете просмотреть все последние сборки.

  • Регрессионные тесты
  • Модульные тесты

Чтобы получать обновления о релизах, вы можете присоединиться к https://groups.google.com/forum/embed/?place=forum/fabric8-devclients## Эквиваленты Kubectl на Java В этой таблице приведены соответствия команд kubectl и методов Kubernetes Java Client. Большинство соответствий являются прямолинейными и представляют собой однострочные операции. Однако для некоторых может потребоваться немного больше кода для достижения того же результата:

Скачать инструмент
Maven Central
Javadocs
  • servicecatalog-client: Maven Central Javadocs
  • chaosmesh-client: Maven Central Javadocs
  • Свойство / Переменная окруженияОписаниеЗначение по умолчанию
    kubernetes.disable.autoConfig / KUBERNETES_DISABLE_AUTOCONFIGОтключить автоматическую настройкуfalse
    kubernetes.master / KUBERNETES_MASTERURL главного узла Kuberneteshttps://kubernetes.default.svc
    kubernetes.api.version / KUBERNETES_API_VERSIONВерсия APIv1
    openshift.url / OPENSHIFT_URLURL главного узла OpenShiftЗначение URL главного узла Kubernetes
    kubernetes.oapi.version / KUBERNETES_OAPI_VERSIONВерсия API OpenShiftv1
    kubernetes.trust.certificates / KUBERNETES_TRUST_CERTIFICATESДоверять всем сертификатамfalse
    kubernetes.disable.hostname.verification / KUBERNETES_DISABLE_HOSTNAME_VERIFICATIONfalse
    kubernetes.certs.ca.file / KUBERNETES_CERTS_CA_FILE
    kubernetes.certs.ca.data / KUBERNETES_CERTS_CA_DATA
    kubernetes.certs.client.file / KUBERNETES_CERTS_CLIENT_FILE
    kubernetes.certs.client.data / KUBERNETES_CERTS_CLIENT_DATA
    kubernetes.certs.client.key.file / KUBERNETES_CERTS_CLIENT_KEY_FILE
    kubernetes.certs.client.key.data / KUBERNETES_CERTS_CLIENT_KEY_DATA
    kubernetes.certs.client.key.algo / KUBERNETES_CERTS_CLIENT_KEY_ALGOАлгоритм шифрования ключа клиентаRSA
    kubernetes.certs.client.key.passphrase / KUBERNETES_CERTS_CLIENT_KEY_PASSPHRASE
    kubernetes.auth.basic.username / KUBERNETES_AUTH_BASIC_USERNAME
    kubernetes.auth.basic.password / KUBERNETES_AUTH_BASIC_PASSWORD
    kubernetes.auth.tryKubeConfig / KUBERNETES_AUTH_TRYKUBECONFIGНастроить клиент с помощью конфигурации Kubernetestrue
    kubeconfig / KUBECONFIGИмя файла конфигурации kubernetes для чтения~/.kube/config
    kubernetes.auth.tryServiceAccount / KUBERNETES_AUTH_TRYSERVICEACCOUNTНастроить клиент из сервисного аккаунтаtrue
    kubernetes.tryNamespacePath / KUBERNETES_TRYNAMESPACEPATHНастроить пространство имён клиента из пути сервисного аккаунта Kubernetestrue
    kubernetes.auth.token / KUBERNETES_AUTH_TOKEN
    kubernetes.watch.reconnectInterval / KUBERNETES_WATCH_RECONNECTINTERVALИнтервал переподключения при наблюдении в мс1000
    kubernetes.watch.reconnectLimit / KUBERNETES_WATCH_RECONNECTLIMITКоличество попыток переподключения (-1 для бесконечности)-1
    kubernetes.connection.timeout / KUBERNETES_CONNECTION_TIMEOUTТайм-аут подключения в мс (0 – без тайм-аута)10000
    kubernetes.request.timeout / KUBERNETES_REQUEST_TIMEOUTТайм-аут чтения в мс10000
    kubernetes.rolling.timeout / KUBERNETES_ROLLING_TIMEOUTТайм-аут последовательного обновления в мс900000
    kubernetes.logging.interval / KUBERNETES_LOGGING_INTERVALИнтервал логирования в мс20000
    kubernetes.scale.timeout / KUBERNETES_SCALE_TIMEOUTТайм-аут масштабирования в мс600000
    kubernetes.websocket.timeout / KUBERNETES_WEBSOCKET_TIMEOUTТайм-аут веб-сокета в мс5000
    kubernetes.websocket.ping.interval / kubernetes_websocket_ping_intervalИнтервал ping веб-сокета в мс30000
    kubernetes.max.concurrent.requests / KUBERNETES_MAX_CONCURRENT_REQUESTS64
    kubernetes.max.concurrent.requests.per.host / KUBERNETES_MAX_CONCURRENT_REQUESTS_PER_HOST5
    kubernetes.impersonate.username / KUBERNETES_IMPERSONATE_USERNAMEЗначение HTTP-заголовка Impersonate-User
    kubernetes.impersonate.group / KUBERNETES_IMPERSONATE_GROUPЗначение HTTP-заголовка Impersonate-Group
    kubernetes.tls.versions / KUBERNETES_TLS_VERSIONSВерсии TLS, разделённые ,TLSv1.2
    kubernetes.truststore.file / KUBERNETES_TRUSTSTORE_FILE
    kubernetes.truststore.passphrase / KUBERNETES_TRUSTSTORE_PASSPHRASE
    kubernetes.keystore.file / KUBERNETES_KEYSTORE_FILE
    kubernetes.keystore.passphrase / KUBERNETES_KEYSTORE_PASSPHRASE
    K8s 1.19.1K8s 1.18.0K8s 1.17.0K8s 1.16.0K8s 1.15.3K8s 1.14.2K8s 1.12.0K8s 1.11.0K8s 1.10.0K8s 1.9.0K8s 1.7.0K8s 1.6.0K8s 1.4.9
    kubernetes-client 5.0.2✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 5.0.1✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 5.0.0✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.13.2✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.13.1✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.13.0✓✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.12.0-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.11.1-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.11.0-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.10.3-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.10.2-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.10.1-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.10.0-✓✓✓✓✓✓✓✓✓---
    kubernetes-client 4.9.2--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.9.1--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.9.0--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.8.0--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.7.1--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.7.0--✓✓✓✓✓✓✓✓---
    kubernetes-client 4.6.4----✓✓✓✓✓✓---
    kubernetes-client 4.6.3----✓✓✓✓✓✓---
    kubernetes-client 4.6.2----✓✓✓✓✓✓---
    kubernetes-client 4.6.1----✓✓✓✓✓✓---
    kubernetes-client 4.6.0----✓✓✓✓✓✓---
    kubernetes-client 4.5.2-----✓✓✓✓✓---
    kubernetes-client 4.5.1-----✓✓✓✓✓---
    kubernetes-client 4.5.0-----✓✓✓✓✓---
    kubernetes-client 4.4.2-----✓✓✓✓✓---
    kubernetes-client 4.4.1-----✓✓✓✓✓---
    kubernetes-client 4.4.0-----✓✓✓✓✓---
    kubernetes-client 4.3.1-----✓✓✓✓✓---
    kubernetes-client 4.3.0-----✓✓✓✓✓---
    kubernetes-client 4.2.2------✓✓✓✓---
    kubernetes-client 4.2.1------✓✓✓✓---
    kubernetes-client 4.2.0------✓✓✓✓---
    kubernetes-client 4.1.3------✓✓✓✓---
    kubernetes-client 4.1.2------✓✓✓✓---
    kubernetes-client 4.1.1------✓✓✓✓---
    kubernetes-client 4.1.0---------✓✓✓-
    kubernetes-client 4.0.0---------✓✓✓-
    kubernetes-client 3.2.0---------✓✓✓-
    kubernetes-client 3.1.12---------✓✓✓-
    kubernetes-client 3.0.11---------✓✓✓-
    kubernetes-client 3.0.10---------✓✓✓-
    kubernetes-client 3.0.3----------✓--
    kubernetes-client 1.3.92-----------++
    OCP 4.5.14OCP 4.2.0OCP 4.1.0OCP 3.11.0OCP 3.10.0OCP 3.9.0OCP 3.7.0OCP 3.6.0
    openshift-client 5.0.2✓✓✓✓✓✓--
    openshift-client 5.0.1✓✓✓✓✓✓--
    openshift-client 5.0.0✓✓✓✓✓✓--
    openshift-client 4.13.2✓✓✓✓✓✓--
    openshift-client 4.13.1✓✓✓✓✓✓--
    openshift-client 4.13.0✓✓✓✓✓✓--
    openshift-client 4.12.0✓✓✓✓✓✓--
    openshift-client 4.11.1✓✓✓✓✓✓--
    openshift-client 4.11.0✓✓✓✓✓✓--
    openshift-client 4.10.3✓✓✓✓✓✓--
    openshift-client 4.10.2✓✓✓✓✓✓--
    openshift-client 4.10.1✓✓✓✓✓✓--
    openshift-client 4.10.0✓✓✓✓✓✓--
    openshift-client 4.9.2-✓✓✓✓✓--
    openshift-client 4.9.1-✓✓✓✓✓--
    openshift-client 4.9.0-✓✓✓✓✓--
    openshift-client 4.8.0-✓✓✓✓✓--
    openshift-client 4.7.1-✓✓✓✓✓--
    openshift-client 4.7.0-✓✓✓✓✓--
    openshift-client 4.6.4--✓✓✓✓--
    openshift-client 4.6.3--✓✓✓✓--
    openshift-client 4.6.2--✓✓✓✓--
    openshift-client 4.6.1--✓✓✓✓--
    openshift-client 4.6.0--✓✓✓✓--
    openshift-client 4.5.2--✓✓✓✓--
    openshift-client 4.5.1--✓✓✓✓--
    openshift-client 4.5.0--✓✓✓✓--
    openshift-client 4.4.2--✓✓✓✓--
    openshift-client 4.4.1--✓✓✓✓--
    openshift-client 4.4.0--✓✓✓✓--
    openshift-client 4.3.1---✓✓✓--
    openshift-client 4.3.0---✓✓✓--
    openshift-client 4.2.2---✓✓✓--
    openshift-client 4.2.1---✓✓✓--
    openshift-client 4.2.0---✓✓✓--
    openshift-client 4.1.3---✓✓✓--
    openshift-client 4.1.2---✓✓✓--
    openshift-client 4.1.1---✓✓✓--
    openshift-client 4.1.0----✓✓✓-
    openshift-client 4.0.0-----✓✓✓
    openshift-client 3.2.0-----✓✓✓
    openshift-client 3.1.12-----✓✓✓
    openshift-client 3.0.11-----✓✓✓
    openshift-client 3.0.10-----✓✓✓
    openshift-client 3.0.3------✓-
    openshift-client 1.3.92-------+
    extensions
    extensions
  • ThirdPartyResource удалён.
  • kubectlFabric8 Kubernetes Client
    kubectl config viewConfigViewEquivalent.java
    kubectl config get-contextsConfigGetContextsEquivalent.java
    kubectl config current-contextConfigGetCurrentContextEquivalent.java
    kubectl config use-context minikubeConfigUseContext.java
    kubectl config view -o jsonpath='{.users[*].name}'ConfigGetCurrentContextEquivalent.java
    kubectl get pods --all-namespacesPodListGlobalEquivalent.java
    kubectl get podsPodListEquivalent.java
    kubectl get pods -wPodWatchEquivalent.java
    kubectl get pods --sort-by='.metadata.creationTimestamp'PodListGlobalEquivalent.java
    kubectl runPodRunEquivalent.java
    kubectl create -f test-pod.yamlPodCreateYamlEquivalent.java
    kubectl exec my-pod -- ls /PodExecEquivalent.java
    kubectl delete pod my-podPodDelete.java
    kubectl delete -f test-pod.yamlPodDeleteViaYaml.java
    kubectl cp /foo_dir my-pod:/bar_dirUploadDirectoryToPod.java
    kubectl cp my-pod:/tmp/foo /tmp/barDownloadFileFromPod.java
    kubectl cp my-pod:/tmp/foo -c c1 /tmp/barDownloadFileFromMultiContainerPod.java
    kubectl cp /foo_dir my-pod:/tmp/bar_dirUploadFileToPod.java
    kubectl logs pod/my-podPodLogsEquivalent.java
    kubectl logs pod/my-pod -fPodLogsFollowEquivalent.java
    kubectl logs pod/my-pod -c c1PodLogsMultiContainerEquivalent.java
    kubectl port-forward my-pod 8080:80PortForwardEquivalent.java
    kubectl get pods --selector=version=v1 -o jsonpath='{.items[*].metadata.name}'PodListFilterByLabel.java
    kubectl get pods --field-selector=status.phase=RunningPodListFilterFieldSelector.java
    kubectl get pods --show-labelsPodShowLabels.java
    kubectl label pods my-pod new-label=awesomePodAddLabel.java
    kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWqPodAddAnnotation.java
    kubectl get configmap cm1 -o jsonpath='{.data.database}'ConfigMapJsonPathEquivalent.java
    kubectl create -f test-svc.yamlLoadAndCreateService.java
    kubectl create -f test-deploy.yamlLoadAndCreateDeployment.java
    kubectl set image deploy/d1 nginx=nginx:v2RolloutSetImageEquivalent.java
    kubectl scale --replicas=4 deploy/nginx-deploymentScaleEquivalent.java
    kubectl rollout restart deploy/d1RolloutRestartEquivalent.java
    kubectl rollout pause deploy/d1RolloutPauseEquivalent.java
    kubectl rollout resume deploy/d1RolloutResumeEquivalent.java
    kubectl rollout undo deploy/d1RolloutUndoEquivalent.java
    kubectl create -f test-crd.yamlLoadAndCreateCustomResourceDefinition.java
    kubectl create -f customresource.yamlCustomResourceCreateDemo.java
    kubectl create -f customresource.yamlCustomResourceCreateDemoTypeless.java
    kubectl get nsNamespaceListEquivalent.java
    kubectl apply -f test-resource-list.ymlCreateOrReplaceResourceList.java
    kubectl get eventsEventsGetEquivalent.java
    kubectl top nodesTopEquivalent.java
    kubectl auth can-i create deployment.appsCanIEquivalent.java