Параметры настройки#

В разделе приведены параметры, доступные для изменения, включая параметры безопасности.

Примечание

Этот документ содержит названия переменных и конфигурационных файлов, которые одинаково применимы для различных сред контейнеризации, указанных в системных требованиях. Имя переменной не определяет конкретную среду контейнеризации.

Параметры безопасности#

В данном разделе приведены доступные к настройке оператором параметры безопасности.

Настройка прав пользователей#

OKD console по умолчанию предоставляет две роли пользователей: «Администратор» и «Разработчик» ((Administrator и Developer)). В роли администратора кластера возможно показать или скрыть возможность действий для всех пользователей или для определенной роли пользователя. Настройка прав гарантирует, что пользователи смогут осуществлять только действия, которые применимы к их роли и задачам.

Например, возможно скрыть вкладку «Администратор» от непривилегированных пользователей, чтобы они не могли управлять ресурсами, пользователями и проектами кластера. Аналогичным образом возможно представление вкладки «Разработчик» пользователям с ролью разработчика, чтобы они могли создавать, развертывать и отслеживать приложения.

Так же возможна настройка прав для пользователей на основе управления доступом на основе ролей (RBAC). Например, если настраивается роль для целей мониторинга, для которой требуются определенные разрешения, возможно определить, что роль видна только пользователям с необходимыми разрешениями.

Каждая роль включает следующие обязательные параметры, которые возможно отредактировать в представлении YAML:

  • id: определяет идентификатор роли, которую нужно показать или скрыть;

  • visibility: определяет состояние роли вместе с проверками проверки доступа, если это необходимо;

  • state: определяет, включена ли роль, отключена или требуется проверка проверки доступа.

Примечание: по умолчанию все роли включены. Когда настраивается роль пользователя, изменения применимы ко всему кластеру.

Настройка прав с использованием представления YAML#

Предварительные условия

  • В кластер осуществлен вход с правами администратора.

Процедура

  1. В качестве администратора перейдите в AdministrationCluster Settings.

  2. Выберите вкладку Configuration и щелкните ресурс Console.

  3. Перейдите на вкладку YAML и выполните настройку:

  • Чтобы скрыть роль на основе разрешений RBAC, вставьте фрагмент Hide user perspectives (Скрыть пользовательские роли) и при необходимости отредактируйте код YAML:


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
spec:
  customization:
    perspectives:
      - id: admin
        visibility:
          state: Enabled
      - id: dev
        visibility:
          state: Enabled

  • Чтобы скрыть роль на основе разрешений RBAC, вставьте фрагмент Hide user perspectives и при необходимости отредактируйте код YAML:


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
spec:
  customization:
    perspectives:
      - id: admin
        requiresAccessReview:
          - group: rbac.authorization.k8s.io
            resource: clusterroles
            verb: list
      - id: dev
        state: Enabled

  • Чтобы настроить роль с настройкой прав вручную, создайте фрагмент YAML:


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
spec:
  customization:
    perspectives:
      - id: admin
        visibility:
          state: AccessReview
          accessReview:
            missing:
              - resource: deployment
                verb: list
            required:
              - resource: namespaces
                verb: list
      - id: dev
        visibility:
          state: Enabled

  1. Нажмите Save.

Настройка прав с использованием представления формы#

Предварительные условия

  • В кластер осуществлен вход с правами администратора.

Процедура

  1. В качестве администратора перейдите в AdministrationCluster Settings.

  2. Выберите вкладку Configuration и нажмите ресурс Console.

  3. Нажмите ActionsCustomize в правой части страницы.

  4. В настройках General установите права пользователя, выбрав в раскрывающемся списке один из следующих вариантов:

  • Enabled: включает права для всех пользователей.

  • Only visible for privileged users: включает права для пользователей, которые могут перечислять все пространства имен.

  • Only visible for unprivileged users: включает права для пользователей, которые не могут перечислять все пространства имен.

  • Disabled: отключает права для всех пользователей.

Откроется уведомление, подтверждающее сохранение изменений.

Настройка прав пользователя

Примечание: изменения автоматически сохраняются и вступают в силу после обновления страницы в браузере.

Каталог разработчиков и настройка подкаталога#

В роли администратора кластера существует возможность организовывать каталог разработчиков или его подкаталоги и управлять ими.

Выполнение сценария позволит включить или отключить типы подкаталогов или отключить весь каталог разработчика.

Объект developerCatalog.types включает в себя следующие параметры, которые необходимо определить во фрагменте, чтобы использовать их в представлении YAML:

  • state: определяет, следует ли включать или отключать список типов каталогов разработчика;

  • enabled: определяет список типов каталогов разработчиков (подкаталогов), видимых пользователям;

  • disabled: определяет список типов каталогов разработчиков (подкаталогов), которые не видны пользователям.

Включите или отключите следующие типы каталогов разработчика (подкаталоги), используя представление YAML или представление формы:

  • Builder Images;

  • Templates;

  • Devfiles;

  • Samples;

  • Helm Charts;

  • Event Sources;

  • Event Sinks;

  • Operator Backed.

Настройка каталога разработчика или его подкаталогов с помощью представления YAML#

Выполнение сценария позволит настроить каталог разработчиков, отредактировав содержимое YAML.

Предварительные условия

Сеанс OKD console с правами администратора кластера.

Процедура

  1. В роли администратора кластера перейдите в раздел AdministrationCluster Settings.

  2. Выберите вкладку Configuration.

  3. Щелкните ресурс Console.

  4. Просмотрите страницу Details.

  5. Перейдите на вкладку YAML, чтобы открыть редактор и при необходимости отредактировать содержимое YAML.

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


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
...
spec:
  customization:
    developerCatalog:
      categories:
      types:
        state: Disabled
        disabled:
          - BuilderImage
          - Devfile
          - HelmChart
...

  1. Нажмите Save.

Примечание

Тип каталога Developer включен по умолчанию при входе в OKD Console с ролью администратора.

Настройка каталога разработчика или его подкаталогов с помощью представления формы#

При выполнении сценария настраивается каталог разработчика, используя представление формы в OKD console.

Предварительные условия

  • Сеанс OKD console с правами администратора кластера;

  • Включена роль разработчика.

Процедура

  1. В качестве администратора перейдите в AdministrationCluster Settings.

  2. Выберите вкладку Configuration и нажмите ресурс Console.

  3. Нажмите ActionsCustomize.

  4. Включите или отключите элементы в разделах Pre-pinned navigation items, Add page и Developer Catalog.

  5. Изменения автоматически сохраняются в системе и вступают в силу в браузере после обновления.

Добавление пользовательских настроек#

Предварительные условия

Установите пользовательские настройки по умолчанию для кластера.

Процедура

  1. Войдите в OKD console, используя учетные данные.

  2. Используйте заголовок для доступа к пользовательским настройкам в профиле пользователя.

  3. В разделе General:

  • В поле Theme установите тему, с которой хотите работать. OKD Console по умолчанию использует выбранную тему при входе в систему.

  • В поле Perspective установите роль для входа по умолчанию. Доступны для выбора роли Administrator или Developer. Если роль не выбрана, вход осуществляется с ролью которую пользователь использовал при последней авторизации.

  • В поле Project выберите проект, в котором осуществляется работа по умолчанию. OKD console будет использовать этот проект при каждом входе в систему.

  • В поле Topology установите представление топологии по умолчанию в виде графика или списка. Если флаг не выбран, консоль будет использовать последний вид, который был использован.

  • В поле Create/Edit resource method укажите предпочтения для создания или редактирования ресурса. Если доступны параметры формы и YAML, OKD console по умолчанию использует выбор оператора.

  1. В разделе Language выберите Default browser language, чтобы использовать настройки языка браузера по умолчанию (английский), или самостоятельно выберите язык для консоли.

  2. В разделе Notifications переключите отображение уведомлений, созданных пользователями для конкретных проектов, на странице Overview или в панели уведомлений.

  3. В разделе Applications:

  • Просмотрите Resource type по умолчанию. Тип ресурса по умолчанию Deployment.

  • Выберите другой тип ресурса по умолчанию в поле Resource type.

Конфигурация OKD console#

Предварительные условия

  • Развернут кластер DropApp.

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

Отредактируйте console.config.io ресурс:


$ kubectl edit console.config.io cluster

В следующем примере показан пример определения ресурса для консоли:


apiVersion: config.openshift.io/v1
kind: Console
metadata:
  name: cluster
spec:
  authentication:
    logoutRedirect: # URL-адрес страницы, которая будет загружаться при выходе пользователя из веб-консоли. Если не указано, оператор вернется на страницу входа в веб-консоль. Указание адреса logoutRedirectURL позволяет оператору выполнять единый выход из системы через поставщика удостоверений, чтобы закрыть сеанс единого входа. URL-адрес веб-консоли. Чтобы обновить это значение до пользовательского, см. раздел «Настройка URL-адреса веб-консоли». 
status:
  consoleURL: # URL-адрес веб-консоли. Чтобы обновить это значение до пользовательского, см. раздел «Настройка URL-адреса веб-консоли».

Отключение быстрого старта в веб-консоли.#

Используйте панель администратора веб-консоли, чтобы отключить один или несколько быстрых стартов.

Предварительные условия

  • получены права администратора кластера;

  • осуществлен вход в веб-консоль.

Процедура

  1. В качестве администратора перейдите в AdministationCluster Settings.

  2. На странице Cluster Settings перейдите на вкладку Configuration.

  3. На странице Configuration щелкните ресурс конфигурации Console.

Изображение страницы конфигурации, показывающее правильный ресурс конфигурации консоли, который нужно выбрать.

  1. В раскрывающемся списке Action выберите Customize, после чего откроется страница Cluster configuration.

  2. На вкладке General в разделе Quick starts выберите элементы в списке Enabled или Disabled и переместите их из одного списка в другой с помощью кнопок со стрелками.

  • Чтобы включить или отключить одиночный быстрый старт, нажмите на Quick starts, затем с помощью кнопок с одинарной стрелкой переместите быстрый старт в соответствующий список.

  • Чтобы включить или отключить несколько быстрых стартов одновременно, нажмите клавишу CTRL и щелкните быстрые старты, которые хотите переместить. Затем с помощью кнопок с одинарной стрелкой переместите быстрые старты в соответствующий список.

  • Чтобы включить или отключить все быстрые старты одновременно, нажмите кнопку с двойной стрелкой, чтобы переместить все быстрые старты в соответствующий список.

Настройка OKD console#

OKD console возможно настроить установив проприетарный логотип, название продукта, ссылки, уведомления и загрузки из командной строки.

Добавление логотипа продукта#

Выполнение сценария обеспечивает интеграцию собственного логотипа или названия продукта.

Предварительные условия

  • Получены права администратора;

  • Развернут кластер DropApp;

  • Создан файл логотипа в графическом формате - GIF, JPG, PNG или SVG, и его размер ограничен расширением 60px.

Процедура

  1. Примените YAML для создания карты конфигурации:


apiVersion: v1
kind: ConfigMap
metadata:
  name: console-custom-logo
  namespace: openshift-config
binaryData:
  console-custom-logo.png: <base64-encoded_logo> ...# 	Предоставьте действительный логотип в кодировке Base64.

  1. Отредактируйте конфигурацию оператора веб-консоли, включив в нее customLogoFile и customProductName:


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
spec:
  customization:
    customLogoFile:
      key: console-custom-logo.png
      name: console-custom-logo
    customProductName: My Console

После обновления конфигурации оператора он синхронизирует карту конфигурации пользовательского логотипа с пространством имен консоли, подключит ее к модулю консоли и повторно развернет.

  1. При возникновении каких-либо проблем оператор кластера консоли сообщит о состоянии Degraded, а конфигурация оператора консоли также сообщит о состоянии CustomLogoDegraded, но с указанием причин, таких как KeyOrFilenameInvalid или NoImageProvided.

Создание пользовательских ссылок в OKD console#

Предварительные условия

Получены права администратора кластера DropApp.

Процедура

  1. В разделе AdministrationCustom Resource Definitions нажмите ConsoleLink.

  2. Выберите вкладку Instances.

  3. Нажмите Create Console Link и отредактируйте файл:


apiVersion: console.io/v1
kind: ConsoleLink
metadata:
  name: example
spec:
  href: 'https://www.example.com'
  location: HelpMenu # Допустимые настройки местоположения: HelpMenu, UserMenu, ApplicationMenuи NamespaceDashboard.
  text: Link 1

Чтобы пользовательская ссылка отображалась во всех пространствах имен, следуйте примеру:


apiVersion: console.io/v1
kind: ConsoleLink
metadata:
  name: namespaced-dashboard-link-for-all-namespaces
spec:
  href: 'https://www.example.com'
  location: NamespaceDashboard
  text: This appears in all namespaces

Чтобы пользовательская ссылка отображалась только в некоторых пространствах имен, следуйте этому примеру:


apiVersion: console.io/v1
kind: ConsoleLink
metadata:
  name: namespaced-dashboard-for-some-namespaces
spec:
  href: 'https://www.example.com'
  location: NamespaceDashboard
  # Этот текст появится в поле «Панель запуска» в разделе «Пространство имен» или «Проект» веб-консоли.
  text: Custom Link Text
  namespaceDashboard:
    namespaces:
    # Для этих конкретных пространств имен
    - my-namespace
    - your-namespace
    - other-namespace

Чтобы пользовательская ссылка появилась в меню приложения, следуйте этому примеру:


apiVersion: console.io/v1
kind: ConsoleLink
metadata:
  name: application-menu-link-1
spec:
  href: 'https://www.example.com'
  location: ApplicationMenu
  text: Link 1
  applicationMenu:
    section: My New Section
    # image that is 24x24 in size
    imageURL: https://via.placeholder.com/24

  1. Нажмите Save, чтобы применить изменения.

Наблюдение доступных квот и ресурсов проекта#

Просмотрите графическое представление потребления ресурсов и выделенных квот во вкладке Topology в роли разработчика OKD console.

Если на ресурсе есть сообщение о достижении ограничений или квот ресурсов, вокруг имени ресурса появляется желтая рамка. Нажмите левой кнопкой мыши на ресурс, чтобы открыть боковую панель и просмотреть сообщение. Если масштаб представления топологии уменьшен, оповещение о новом сообщении маркируется желтой точкой.

При использовании представления списка из меню List View ресурсы отображаются в виде списка. В столбце Alerts указывается, доступно ли сообщение.

Создание пользовательских баннеров уведомлений#

Предварительные условия

  • В кластер осуществлен вход с правами администратора.

Процедура

  1. В разделе AdministrationCustom Resource Definitions нажмите СonsoleNotification.

  2. Выберите вкладку Instances.

  3. Нажмите Create Console Notification и отредактируйте файл:


apiVersion: console.io/v1
kind: ConsoleNotification
metadata:
  name: example
spec:
  text: Это пример уведомления с дополнительной ссылкой.
  location: BannerTop # 
  link:
    href: 'https://www.example.com'
    text: Опциональный текст сылки
  color: '#fff' # цвет текста
  backgroundColor: '#0088ce' # цвет заливки фона

  1. Нажмите «Create», чтобы применить изменения.

Настройка загрузки CLI#

Настройте ссылки для загрузки CLI с настраиваемым текстом ссылки и URL-адресами, которые могут указывать непосредственно на пакеты файлов или на внешнюю страницу, предоставляющую пакеты.

Предварительные условия

  • В кластер осуществлен вход с правами администратора.

Процедура

  1. Перейдите в раздел AdministrationCustom Resource Definitions.

  2. Выберите ConsoleCLIDownload из списка определений пользовательских ресурсов (CRD).

  3. Откройте вкладку YAML и внесите изменения:


apiVersion: console.io/v1
kind: ConsoleCLIDownload
metadata:
  name: example-cli-download-links-for-foo
spec:
  description: |
    This is an example of download links for foo
  displayName: example-foo
  links:
  - href: 'https://www.example.com/public/foo.tar'
    text: foo for linux
  - href: 'https://www.example.com/public/foo.mac.zip'
    text: foo for mac
  - href: 'https://www.example.com/public/foo.win.zip'
    text: foo for windows

  1. Нажмите кнопку Save.

Добавление примеров YAML в ресурсы Kubernetes#

Выполнение сценария позволяет добавлять примеры YAML к любым ресурсам Kubernetes.

Предварительные условия

  • В кластер осуществлен вход с правами администратора.

Процедура

  1. В разделе AdministrationCustom Resource Definitions нажмите ConsoleYAMLSample

  2. Нажмите YAML и отредактируйте файл:


apiVersion: console.io/v1
kind: ConsoleYAMLSample
metadata:
  name: example
spec:
  targetResource:
    apiVersion: batch/v1
    kind: Job
  title: Example Job
  description: An example Job YAML sample
  yaml: |
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: countdown
    spec:
      template:
        metadata:
          name: countdown
        spec:
          containers:
          - name: counter
            image: centos:7
            command:
            - "bin/bash"
            - "-c"
            - "for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done"
          restartPolicy: Never

Используйте spec.snippet, чтобы указать, что образец YAML не является полным определением ресурса YAML, а является фрагментом, который можно вставить в существующий документ YAML при наведении курсора пользователя.

  1. Нажмите Save.

Создание динамических плагинов#

Динамический плагин позволяет добавлять пользовательские страницы и другие расширения в веб интерфейс во время выполнения. Пользовательский ресурс ConsolePlugin регистрирует плагины в консоли, а администратор кластера включает плагины в конфигурации console-operator.

Динамический плагин позволяет добавить следующие элементы в интерфейс OKD Console:

  • пользовательские страницы;

  • права и роли помимо администратора и разработчика;

  • элементы навигации;

  • вкладки и действия на страницы ресурсов.

Общие рекомендации#

При создании плагина следуйте рекомендациям:

  • установите Node.js и yarn для сборки и запуска плагина;

  • используйте префикс имен классов CSS с именем вашего плагина. Например, my-plugin__heading и my-plugin_\_icon;

  • поддерживайте единообразный внешний вид, поведение и навигацию с другими страницами консоли;

  • следуйте рекомендациям по локализации response-i18next при создании плагина. Используйте Webhook useTranslation, как в следующем примере:


conster Header: React.FC = () => {
  const { t } = useTranslation('plugin__console-demo-plugin');
  return <h1>{t('Hello, World!')}</h1>;
};

Рекомендации по использованию PatternFly 4#

При создании плагина следуйте этим рекомендациям по использованию PatternFly:

  • Используйте компоненты PatternFly4 и переменные CSS PatternFly. Основные компоненты PatternFly доступны через SDK. Использование компонентов и переменных PatternFly поможет вашему плагину выглядеть единообразным в будущих версиях консоли.

  • Сделайте свой плагин доступным, следуя основам доступности PatternFly.

  • Избегайте использования других библиотек Bootstrap или Tailwind. Они могут конфликтовать с PatternFly и не соответствовать внешнему виду консоли.

Начало работы с динамическими плагинами#

Чтобы начать использовать динамический плагин, необходимо настроить свою среду для написания нового динамического плагина OKD. Пример написания нового плагина см. в разделе Добавление вкладки на страницу модулей.

Разработка динамического плагина#

Запустите плагин используя локальную среду разработки. OKD web console работает в контейнере, подключенном к кластеру, в который осуществлен вход.

Предварительные условия

  • запущен кластер DropApp;

  • установлен CLI;

  • установлен yarn (менеджер пакетов с открытым исходным кодом, используемый для управления зависимостями в проектах JavaScript);

  • установлен Docker v3.2.0 или новее или Podman.

Процедура

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


yarn install

  1. После установки выполните следующую команду, чтобы запустить менеджер пакетов:


yarn run start

  1. В другом окне терминала войдите через CLI:


kubectl login

  1. Запустите OCD Console в контейнере, выполнив команду:


$ yarn run start-console

Проверка

Посетите страницу localhost:9000, чтобы просмотреть работающий плагин. Проверьте значение window.SERVER_FLAGS.consolePlugins, чтобы увидеть список плагинов, которые загружаются во время выполнения.

Развертывание плагина в кластере#

Создание образов в Docker#

Создайте образ и отправьте его в реестр образов, чтобы развернуть плагин в кластере.

Процедура

  1. Создайте образ с помощью следующей команды:


docker build -t quay.io/my-repositroy/my-plugin:latest

  1. Необязательно: для тестирования образа запустите следующую команду:


docker push quay.io/my-repository/my-plugin:latest

  1. Отправьте образ, выполнив следующую команду:


docker push quay.io/my-repository/my-plugin:latest

Развертывание плагина в кластере#

Выполнение сценария развертывания возможно после отправки образа с изменениями в репозиторий.

Процедура

Чтобы развернуть плагин в кластере, установите Helm с именем плагина в качестве имени выпуска Helm в новое пространство имен или существующее пространство имен, как указано в параметре командной строки -n. Укажите расположение изображения внутри параметра plugin.image, используя следующую команду:


helm upgrade -i  my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location

Где:

  • n <my-plugin-namespace> - указывает существующее пространство имен для развертывания плагина;

  • --create-namespace необязательно: при развертывании в новом пространстве имен используйте этот параметр;

  • --set plugin.image=my-plugin-image-location - указывает расположение изображения внутри plugin.image параметра.

  1. Необязательно: укажите дополнительные параметры, используя набор дополнительных параметров в файле charts/openshift-console-plugin/values.yaml:


plugin:
  name: ""
  description: ""
  image: ""
  imagePullPolicy: IfNotPresent
  replicas: 2
  port: 9443
  securityContext:
    enabled: true
  podSecurityContext:
    enabled: true
    runAsNonRoot: true
    seccompProfile:
      type: RuntimeDefault
  containerSecurityContext:
    enabled: true
    allowPrivilegeEscalation: false
    capabilities:
      drop:
        - ALL
  resources:
    requests:
      cpu: 10m
      memory: 50Mi
  basePath: /
  certificateSecretName: ""
  serviceAccount:
    create: true
    annotations: {}
    name: ""
  patcherServiceAccount:
    create: true
    annotations: {}
    name: ""
  jobs:
    patchConsoles:
      enabled: true
      image: "registry.ххххххххх.io/openshift4/ose-tools-rhel8@sha256:e44074f21e0cca6464e50cb6ff934747e0bd11162ea01d522433a1a1ae116103"
      podSecurityContext:
        enabled: true
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      containerSecurityContext:
        enabled: true
        allowPrivilegeEscalation: false
        capabilities:
          drop:
            - ALL
      resources:
        requests:
          cpu: 10m
          memory: 50Mi

Проверка

Просмотрите список включенных плагинов, перейдя в AdministrationCluster SettingsConfigurationConsoleConsole plugins или посетив страницу Owerview.

Отключение плагина в браузере#

Операторы OCD Console могут использовать параметр запроса disable-plugins, чтобы отключить определенные или все динамические плагины, которые обычно загружаются во время выполнения.

Процедура

  • Отключите определенный плагин: удалите плагин, который необходимо отключить, из списка имен плагинов, разделенных запятыми;

  • отключите все плагины: оставьте пустую строку в параметре запроса disable-plugins.

Примечание

Администраторы кластера могут отключать плагины на странице Cluster Settings OKD console.

Пример динамического плагина#

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

Добавление вкладки на страницу модулей#

В OKD console можно внести различные настройки. Сценарий добавляет вкладку на страницу сведений о модуле в качестве примера расширения плагина.

Примечание

OKD console работает в контейнере, подключенном к кластеру, в который осуществлен вход, см. раздел «Разработка динамического плагина» для получения информации о тестировании плагина.

Процедура

  1. Откройте репозиторий console-plugin-template, содержащий шаблон для создания плагинов в новой вкладке.

  2. Создайте репозиторий для шаблона, нажав Use this templateCreate new repository.

  3. Переименуйте новый репозиторий, указав имя плагина.

  4. Клонируйте новый репозиторий на локальный компьютер, чтобы иметь возможность редактировать код.

  5. Отредактируйте файл package.json, добавив в объявление метаданные плагина consolePlugin, например:


"consolePlugin": {
  "name": "my-plugin", # Введите имя плагина
  "version": "0.0.1", # Добавьте версию плагина
  "displayName": "My Plugin", # Введите отображаемое имя плагина
  "description": "Enjoy this shiny, new console plugin!", # Добавьте описание или краткий обзор плагина
  "exposedModules": {
    "ExamplePage": "./components/ExamplePage"
  },
  "dependencies": {
    "@console/pluginAPI": "/*"
  }
}

  1. Добавьте в файл console-extensions.json следующее:


{
  "type": "console.tab/horizontalNav",
  "properties": {
    "page": {
      "name": "Example Tab",
      "href": "example"
    },
    "model": {
      "group": "core",
      "version": "v1",
      "kind": "Pod"
    },
    "component": { "$codeRef": "ExampleTab" }
  }
}

  1. Отредактируйте файл package.json, включив в него следующие изменения:


        "exposedModules": {
            "ExamplePage": "./components/ExamplePage",
            "ExampleTab": "./components/ExampleTab"
        }

  1. Напишите сообщение для отображения на новой настраиваемой вкладке на странице модулей, создав новый файл src/components/ExampleTab.tsx и добавив следующий скрипт:


import * as React from 'react';

export default function ExampleTab() {
    return (
        <p>This is a custom tab added to a resource using a dynamic plugin.</p>
    );
}

  1. Установите диаграмму Helm с именем плагина в качестве имени выпуска Helm в новое пространство имен или существующее пространство имен, как указано в параметре -n командной строки, чтобы развернуть плагин в кластере. Укажите расположение образа внутри параметра plugin.image, используя следующую команду:


helm upgrade -i  my-plugin charts openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin image=my-plugin-image-location

  1. Посетите страницу Pod чтобы просмотреть добавленную вкладку.

Справочник по настройкам динамического плагина#

В данном разделе представлены расширения, которые позволяют настроить динамический плагин под задачи оператора. Эти расширения затем загружаются в OKD Console во время выполнения.

Ниже представлены типы расширений динамических плагинов с кратким описанием выполняемых действий и синтаксисом.

Console.action/filter#

ActionFilter можно использовать для фильтрации действия.

Имя

Тип значения

Обязательность применения

Описание

contextId

string

нет

Идентификатор контекста помогает сузить объем выполняемых действий до определенной области приложения. Примеры включают topology и helm

filter

CodeRef<(scope: any, action: Action)⇒ boolean>

нет

Функция, которая будет фильтровать действия по некоторым условиям.

scope: Объем, в котором должны быть предусмотрены действия. Перехватчик может потребоваться, при удалении действия ModifyCount из развертывания с помощью горизонтального автомасштабирования модуля (HPA)

Console.action/group#

ActionGroup добавляет группу действий, которая также может быть подменю.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор, используемый для идентификации раздела действий

label

string

да

Метка, отображаемая в пользовательском интерфейсе. Требуется для подменю

submenu

boolean

да

Должна ли эта группа отображаться как подменю

insertBefore

string

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. Значение insertBefore имеет приоритет

Сonsole.action/provider#

ActionProvider предоставляет перехватчик, который возвращает список действий для определенного контекста.

Имя

Тип значения

Обязательность применения

Описание

contextId

string

нет

Идентификатор контекста помогает сузить объем выполняемых действий до определенной области приложения. Примеры включают topology и helm

provider

CodeRe

нет

Перехватчик React, который возвращает действия для заданной области. Если contextId=resource, то областью всегда будет объект ресурса Kubernetes

Console.action/resource-provider#

ResourceActionProvider предоставляет перехватчик, который возвращает список действий для конкретной модели ресурса.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sKindVersionModel

нет

Модель, для которой этот поставщик предоставляет действия

provider

CodeRef

нет

Перехватчик реагирования, который возвращает действия для данной модели ресурса

Console.alert-action#

Это расширение можно использовать для запуска определенного действия, когда OKD console наблюдает определенное предупреждение Prometheus на основе его значения rule.name.

Имя

Тип значения

Обязательность применения

Описание

alert

string

нет

Имя оповещения, определенное свойством alert.rule.name

text

string

нет

action

boolean

нет

Функция для выполнения побочного эффекта

Console.catalog/item-filter#

Это расширение можно использовать для плагинов, чтобы добавить обработчик, который может фильтровать определенные элементы каталога. Например, плагин может предоставить фильтр, который фильтрует диаграммы управления от конкретного поставщика.

Имя

Тип значения

Обязательность применения

Описание

catalogId

string

нет

Уникальный идентификатор каталога, в котором участвует этот поставщик.

type

string

нет

Идентификатор типа для типа элемента каталога.

filter

boolean

нет

Фильтрует элементы определенного типа. Value — это функция, которая принимает CatalogItem[]и возвращает подмножество на основе критериев фильтра.

Console.catalog/item-metadata#

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

Имя

Тип значения

Обязательность применения

Описание

catalogId

string

нет

Уникальный идентификатор каталога, в котором участвует этот поставщик

type

string

нет

Идентификатор типа для типа элемента каталога

provider

CodeRef<ExtensionHook<CatalogItemMetadataProviderFunction, CatalogExtensionHookOptions>>

нет

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

Console.catalog/item-provider#

Это расширение позволяет плагинам добавлять поставщика для типа элемента каталога. Например, плагин Helm может добавить поставщика, который извлекает все диаграммы Helm. Это расширение также может использоваться другими плагинами для добавления дополнительных элементов к определенному типу элементов каталога.

Имя

Тип значения

Обязательность применения

Описание

catalogId

string

нет

Уникальный идентификатор каталога, в котором участвует этот поставщик

type

string

нет

Идентификатор типа для типа элемента каталога

title

string

нет

Название поставщика элементов каталога

provider

CodeRef<ExtensionHook<CatalogItem[], CatalogExtensionHookOptions>>

нет

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

priority

number

да

Приоритет для этого провайдера. По умолчанию 0. Поставщики с более высоким приоритетом могут переопределять элементы каталога, предоставленные другими поставщиками

Console.catalog/item-type#

Это расширение позволяет плагинам добавлять новый тип элемента каталога. Например, плагин Helm может определить новый тип элемента каталога как HelmCharts.

Имя

Тип значения

Обязательность применения

Описание

type

string

нет

Введите элемент каталога

title

string

нет

Название позиции каталога

catalogDescription

string

да

Описание для каталога конкретного типа

typeDescription

string

да

Описание типа элемента каталога

filters

CatalogItemAttribute[]

да

Пользовательские фильтры, специфичные для элемента каталога

groupings

CatalogItemAttribute[]

да

Пользовательские группировки, специфичные для элемента каталога

Console.catalog/item-type-metadata#

Это расширение позволяет плагинам предоставлять дополнительные метаданные, такие как пользовательские фильтры или группировки для любого типа элементов каталога. Например, плагин может прикрепить собственный фильтр для HelmCharts, который может фильтровать данные на основе поставщика диаграмм.

Имя

Тип значения

Обязательность применения

Описание

type

string

нет

Тип элемента каталога

filters

CatalogItemAttribute[]

да

Пользовательские фильтры, специфичные для элемента каталога

groupings

CatalogItemAttribute[]

да

Пользовательские группировки, специфичные для элемента каталога

Console.cluster-overview/inventory-item#

Добавляет новый элемент на страницу Overview кластера.

Имя

Тип значения

Обязательность применения

Описание

component

CodeRef<React.ComponentType<{}>>

нет

Компонент, который необходимо отобразить

Console.cluster-overview/multiline-utilization-item#

Добавляет новый многострочный элемент обзора кластера.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Название элемента кластера

getUtilizationQueries

CodeRef

нет

Запрос использования Prometheus

humanize

CodeRef

нет

Преобразование данных Prometheus в форму, удобную для чтения человеком

TopConsumerPopovers

CodeRef<React.ComponentType[]>

да

Активация всплывающего окна «Top consumer» вместо простого значения

Console.cluster-overview/utilization-item#

Добавляет новый элемент обзора использования кластера.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Название элемента кластера

getUtilizationQuery

CodeRef

нет

Запрос использования Prometheus

humanize

CodeRef

нет

Преобразуйте данные Prometheus в удобочитаемую форму

getTotalQuery

CodeRef

да

Общий запрос Prometheus

getRequestQuery

CodeRef

да

Запрос запроса Prometheus

getLimitQuery

CodeRef

да

Запрос ограничения Prometheus

TopConsumerPopover

CodeRef<React.ComponentType>

да

Показывает всплывающее окно «Top consumer» вместо простого значения

Console.context-provider#

Добавляет нового поставщика контекста React в корень приложения веб-консоли.

Имя

Тип значения

Обязательность применения

Описание

provider

CodeRef<Provider>

нет

Компонент поставщика контекста

useValueHook

CodeRef<() ⇒ T>

нет

Перехватчик значения контекста

Console.dashboards/card#

Добавляет новую карточку информационной панели.

Имя

Тип значения

Обязательность применения

Описание

tab

string

нет

Идентификатор вкладки панели мониторинга, в которую будет добавлена карточка

position

'LEFT', 'RIGHT', 'MAIN'

нет

Положение карты на информационной панели в сетке

component

CodeRef<React.ComponentType<{}>>

нет

Компонент карты информационной панели

span

OverviewCardSpan

да

Вертикальный диапазон карты в столбце. Игнорируется для маленьких экранов, по умолчанию 12

Console.dashboards/custom/overview/detail/item#

Добавляет элемент на карточку сведений на обзорной панели.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Название карточки с подробностями

component

CodeRef<React.ComponentType<{}>>

нет

Значение, отображаемое компонентом ReviewDetailItem

valueClassName

string

да

Значение имени класса

isLoading

CodeRef<() ⇒ boolean>

да

Функция, возвращающая состояние загрузки компонента

error

CodeRef<() ⇒ string>

да

Функция, возвращающая ошибки, которые будут отображаться компонентом

Console.dashboards/overview/activity/resource#

Добавляет действие в карточку активности обзорной панели, где запуск действия основан на просмотре ресурса Kubernetes.

Имя

Тип значения

Обязательность применения

Описание

k8sResource

CodeRef<FirehoseResource & { isList: true; }>

нет

Предмет использования, подлежащий замене

component

CodeRef<React.ComponentType<K8sActivityProps>>

нет

Компонент действия

isActivity

CodeRef<(resource: T) ⇒ boolean>

да

Функция, которая определяет, представляет ли данный ресурс действие. Если не определено, каждый ресурс представляет собой активность

getTimestamp

CodeRef<(resource: T) ⇒ Date>

да

Временная метка данного действия, которая будет использоваться при заказе

Console.dashboards/overview/health/operator#

Добавляет подсистему работоспособности в карточку состояния панели мониторинга Overview, где источник статуса API REST Kubernetes.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Название раздела «Операторы» во всплывающем меню

resources

CodeRef<FirehoseResource[]>

нет

Ресурсы Kubernetes, которые будут извлечены и переданы в healthHandler

getOperatorsWithStatuses

CodeRef<GetOperatorsWithStatuses>

да

Определяет статус Операторов

operatorRowLoader

CodeRef<React.ComponentType<OperatorRowProps>>

да

Загрузчик компонента всплывающей строки

viewAllLink

string

да

Ссылки на все страницы ресурсов. Если не указано, то используется страница списка первого ресурса из ресурсов

Console.dashboards/overview/health/prometheus#

Добавляет подсистему работоспособности в карточку состояния информационной панели Overview, где источник статуса Prometheus.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Отображаемое имя подсистемы

queries

string[]

нет

Запросы Prometheus

healthHandler

CodeRef

нет

Устраните проблему со здоровьем подсистемы

additionalResource

CodeRef

да

Дополнительный ресурс, который будет получен и передан в healthHandler

popupComponent

CodeRef<React.ComponentType>

да

Загрузчик содержимого всплывающего меню. Если определено, элемент здоровья представлен в виде ссылки, которая открывает всплывающее меню с заданным содержимым

popupTitle

string

да

Название popup

disallowedControlPlaneTopology

string[]

да

Топология плоскости управления, для которой подсистема должна быть скрыта

Console.dashboards/overview/health/resource#

Добавляет подсистему работоспособности на карточку состояния панели «Overview», где источник состояния ресурс Kubernetes.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Отображаемое имя подсистемы

resources

CodeRef<WatchK8sResources>

нет

Ресурсы Kubernetes, которые будут получены и переданы в healthHandler

healthHandler

CodeRef<ResourceHealthHandler>

нет

Устраните проблему со здоровьем подсистемы

popupComponent

CodeRef<WatchK8sResults>

да

Загрузчик содержимого всплывающего меню. Если определено, элемент представлен в виде ссылки, которая открывает всплывающее меню с заданным содержимым

popupTitle

string

да

Название popup

Console.dashboards/overview/health/url#

Добавляет подсистему работоспособности в карточку состояния панели мониторинга «Overview», где источник статуса API REST Kubernetes.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Отображаемое имя подсистемы

url

string

нет

URL-адрес для получения данных. Ему будет предшествовать базовый URL-адрес Kubernetes

healthHandler

CodeRef<URLHealthHandler<T, K8sResourceCommon K8sResourceCommon[]>>

нет

Устраните проблему healthHandler подсистемы

additionalResource

CodeRef

да

Дополнительный ресурс, который будет получен и передан в healthHandler

popupComponent

CodeRef<React.ComponentType<{ healthResult?: T; healthResultError?: any; k8sResult?: FirehoseResult; }>>

да

Загрузчик всплывающего контента. Если этот параметр определен, элемент здоровья будет представлен в виде ссылки, открывающей всплывающее окно с заданным содержимым

popupTitle

string

да

Название popup

Console.dashboards/overview/inventory/item#

Добавляет плитку ресурса в карточку состояния панели мониторинга «Overview».

Имя

Тип значения

Обязательность применения

Описание

model

CodeRef

нет

Модель, для resource которой будет получена информация. Используется для получения модели label или abbr

mapper

CodeRef<StatusGroupMapper<T, R>>

да

Функция, которая отображает различные статусы в группы

additionalResources

CodeRef<WatchK8sResources>

да

Дополнительные ресурсы, которые будут получены и переданы функции mapper

Console.dashboards/overview/inventory/item/group#

Добавляет группу статуса запасов.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор группы статусов

icon

CodeRef<React.ReactElement<any, string React.JSXElementConstructor>>

нет

Компонент React, представляющий значок группы статуса

Console.dashboards/overview/inventory/item/replacement#

Заменяет карточку состояния панели мониторинга «Overview».

Имя

Тип значения

Обязательность применения

Описание

model

CodeRef

нет

Модель, для resource которой будет получена информация. Используется для получения модели label или abbr

mapper

CodeRef<StatusGroupMapper<T, R>>

да

Функция, которая отображает различные статусы в группы

additionalResources

CodeRef<WatchK8sResources>

да

Дополнительные ресурсы, которые будут получены и переданы функции mapper

Console.dashboards/overview/prometheus/activity/resource#

Добавляет действие в карточку активности панели Prometheus, где запуск действия основан на просмотре ресурса Kubernetes.

Имя

Тип значения

Обязательность применения

Описание

queries

string[]

нет

Вопросы для просмотра

component

CodeRef<React.ComponentType>

нет

Компонент действия

isActivity

CodeRef<(results: PrometheusResponse[]) ⇒ boolean>

да

Функция, которая определяет, представляет ли данный ресурс действие. Если не определено, каждый ресурс представляет собой активность

Console.dashboards/project/overview/item#

Добавляет плитку ресурса в инвентарную карточку обзора проекта.

Имя

Тип значения

Обязательность применения

Описание

model

CodeRef

нет

Модель, для resource которой будет получена информация. Используется для получения модели label или abbr

mapper

CodeRef<StatusGroupMapper<T, R>>

да

Функция, которая отображает различные статусы в группы

additionalResources

CodeRef<WatchK8sResources>

да

Дополнительные ресурсы, которые будут получены и переданы функции mapper

Console.dashboards/tab#

Добавляет новую вкладку панели мониторинга, расположенную после вкладки Overview.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор вкладки, используемый в качестве ссылки на вкладку href и при добавлении карточек на эту вкладку

navSection

'home', 'storage'

нет

Раздел навигации, к которому относится вкладка

title

string

нет

Название вкладки

Console.file-upload#

Это расширение можно использовать для предоставления обработчика действия по удалению файла для определенных расширений файлов.

Имя

Тип значения

Обязательность применения

Описание

fileExtensions

string[]

нет

Поддерживаемые расширения файлов

handler

CodeRef

нет

Функция, которая обрабатывает действие по удалению файла

Console.flag#

Предоставляет полный контроль над флагами функций веб-консоли.

Имя

Тип значения

Обязательность применения

Описание

handler

CodeRef

нет

Используется для установки или снятия произвольных флагов функций

Console.flag/hookProvider#

Предоставляет полный контроль над флагами функций веб-консоли с помощью обработчиков перехватчиков.

Имя

Тип значения

Обязательность применения

Описание

handler

CodeRef

нет

Используется для установки или снятия произвольных флагов функций

Console.flag/model#

Добавляет новый флаг функции веб-консоли, зависящий от наличия объекта CustomResourceDefinition(CRD) в кластере.

Имя

Тип значения

Обязательность применения

Описание

flag

string

нет

Имя флага, который будет установлен после обнаружения CRD

model

ExtensionK8sModel

нет

Модель, которая относится к CRD

Console.global-config#

Это расширение идентифицирует ресурс, используемый для управления конфигурацией кластера. Ссылка на ресурс будет добавлена на страницу AdministrationCluster SettingsConfiguration.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор экземпляра ресурса конфигурации кластера

name

string

нет

Имя экземпляра ресурса конфигурации кластера

model

ExtensionK8sModel

нет

Модель, которая ссылается на ресурс конфигурации кластера

namespace

string

нет

Пространство имен экземпляра ресурса конфигурации кластера

Console.model-metadata#

Настраивает отображение моделей, переопределяя значения, полученные и сгенерированные посредством обнаружения API.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sGroupModel

нет

Модель для настройки. Можно указать только группу или дополнительную версию и вид

badge

ModelBadge

да

Следует ли рассматривать эту ссылку на модель как предварительную версию технологии или предварительную версию для разработчиков

color

string

да

Цвет, который будет связан с этой моделью

label

string

да

Переопределить метку. Требуется предоставить kind

labelPlural

string

да

Переопределить метку во множественном числе. Требуется предоставить kind

abbr

string

да

Настройте аббревиатуру. По умолчанию используются все символы верхнего регистра kind длиной до 4 символов. Требует того, что kind предусмотрено

Console.navigation/href#

Это расширение можно использовать для добавления элемента навигации, указывающего на определенную ссылку в пользовательском интерфейсе.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этого элемента

name

string

нет

Название этого предмета

href

string

нет

Стоимость ссылки href

perspective

string

да

Идентификатор перспективы, которой принадлежит этот элемент. Если не указано, используется перспектива по умолчанию

section

string

да

Раздел навигации, к которому относится этот элемент. Если не указано, отображать этот элемент как ссылку верхнего уровня

dataAttributes

{ [key: string]: string; }

да

Добавляет атрибуты данных в DOM

startsWith

string[]

да

Отметьте этот элемент как активный, если URL-адрес начинается с одного из этих путей

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. insertBefore имеет приоритет

namespaced

boolean

да

Если true, добавляется /ns/active-namespace в конец

prefixNamespaced

boolean

да

Если true, добавляется /k8s/ns/active-namespace в начало

Console.navigation/resource-cluster#

Это расширение можно использовать для добавления элемента навигации, указывающего на страницу сведений о ресурсе кластера. Модель K8s этого ресурса можно использовать для определения элемента навигации.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этого элемента

model

ExtensionK8sModel

нет

Модель, на которую ссылается этот элемент навигации

perspective

string

да

Идентификатор перспективы, которой принадлежит этот элемент. Если не указано, используется перспектива по умолчанию

section

string

да

Раздел навигации, к которому относится этот элемент. Если не указано, отображать этот элемент как ссылку верхнего уровня

dataAttributes

{ [key: string]: string; }

да

Добавляет атрибуты данных в DOM

startsWith

string[]

да

Отметьте этот элемент как активный, если URL-адрес начинается с одного из этих путей

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. insertBefore имеет приоритет

name

string

да

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

Console.navigation/resource-ns#

Это расширение можно использовать для добавления элемента навигации, указывающего на страницу сведений о ресурсе в пространстве имен. Модель этого ресурса можно использовать для определения элемента навигации.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этого элемента

model

ExtensionK8sModel

нет

Модель, на которую ссылается этот элемент навигации

perspective

string

да

Идентификатор перспективы, которой принадлежит этот элемент. Если не указано, используется перспектива по умолчанию

section

string

да

Раздел навигации, к которому относится этот элемент. Если не указано, отображать этот элемент как ссылку верхнего уровня

dataAttributes

{ [key: string]: string; }

да

Добавляет атрибуты данных в DOM

startsWith

string[]

да

Отметьте этот элемент как активный, если URL-адрес начинается с одного из этих путей

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. insertBefore имеет приоритет

name

string

да

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

Console.navigation/section#

Это расширение можно использовать для определения нового раздела элементов навигации на вкладке навигации.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этого элемента.

perspective

string

да

Идентификатор перспективы, которой принадлежит этот элемент. Если не указано, используется перспектива по умолчанию

dataAttributes

{ [key: string]: string; }

да

Добавляет атрибуты данных в DOM

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. insertBefore имеет приоритет

name

string

да

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

Console.navigation/separator#

Это расширение можно использовать для добавления разделителя между элементами навигации в навигации.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этого элемента

perspective

string

да

Идентификатор перспективы, которой принадлежит этот элемент. Если не указано, используется перспектива по умолчанию

section

string

да

Раздел навигации, к которому относится этот элемент. Если не указано, отображать этот элемент как ссылку верхнего уровня

dataAttributes

{ [key: string]: string; }

да

Добавляет атрибуты данных в DOM

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. insertBefore имеет приоритет

Console.page/resource/details#

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sGroupKindModel

нет

Модель, на которую ссылается эта страница ресурса

component

CodeRef<React.ComponentType<{ match: match<{}>; namespace: string; model: ExtensionK8sModel; }>>

нет

Компонент, который будет отображаться при совпадении маршрута

Console.page/resource/list#

Добавляет новую страницу списка ресурсов в консольный маршрутизатор.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sGroupKindModel

нет

Модель, на которую ссылается эта страница ресурса

component

CodeRef<React.ComponentType<{ match: match<{}>; namespace: string; model: ExtensionK8sModel; }>>

нет

Компонент, который будет отображаться при совпадении маршрута

Console.page/route#

Добавляет новую страницу в маршрутизатор веб-консоли. См. React Router .

Имя

Тип значения

Обязательность применения

Описание

component

CodeRef<React.ComponentType<RouteComponentProps<{}, StaticContext, any>>>

нет

Компонент, который будет отображаться при совпадении маршрута

path

string string[]

нет

Действительный путь URL или массив путей, который path-to-regexp@^1.7.0 понимает

perspective

string

да

Перспектива, к которой принадлежит эта страница. Если не указано, способствует всем перспективам

exact

boolean

да

Если true, будет соответствовать только в том случае, если путь location.pathname точно соответствует

Console.page/route/standalone#

Добавляет новую автономную страницу, отображаемую вне общего макета страницы.

Имя

Тип значения

Обязательность применения

Описание

component

CodeRef<React.ComponentType<RouteComponentProps<{}, StaticContext, any>>>

нет

Компонент, который будет отображаться при совпадении маршрута

path

string string[]

нет

Действительный путь URL или массив путей, который path-to-regexp@^1.7.0понимает

exact

boolean

да

Если true, будет соответствовать только в том случае, если путь location.pathname точно соответствует

Console.perspective#

Это расширение позволяет настраивать меню навигации.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор роли

name

string

нет

Отображаемое имя роли

icon

CodeRef

нет

Значок отображения роли

landingPageURL

CodeRef<(flags: { [key: string]: boolean; }, isFirstVisit: boolean) ⇒ string>

нет

Функция получения URL-адреса перспективной целевой страницы

importRedirectURL

CodeRef<(namespace: string) ⇒ string>

нет

Функция для получения URL-адреса перенаправления для потока импорта

default

boolean

да

Является ли роль значением по умолчанию. По умолчанию может быть только одно значение

defaultPins

ExtensionK8sModel[]

да

Ресурсы, закрепленные по умолчанию в навигации

usePerspectiveDetection

CodeRef<() ⇒ [boolean, boolean]>

да

Webhook для определения роли по умолчанию

Console.project-overview/inventory-item#

Добавляет новый элемент на страницу Project Overview.

Имя

Тип значения

Обязательность применения

Описание

component

CodeRef<React.ComponentType<{ projectName: string; }>>

нет

Компонент, который необходимо отрисовать

Console.project-overview/utilization-item#

Добавляет новый элемент использования.

Имя

Тип значения

Обязательность применения

Описание

title

string

нет

Название предмета использования.

getUtilizationQuery

CodeRef

нет

Запрос использования Prometheus

humanize

CodeRef

нет

Преобразуйте данные Prometheus в удобочитаемую форму

getTotalQuery

CodeRef

да

Общий запрос Prometheus

getRequestQuery

CodeRef

да

Запрос запроса Prometheus

getLimitQuery

CodeRef

да

Запрос ограничения Prometheus

TopConsumerPopover

CodeRef<React.ComponentType>

да

Показывает всплывающее окно с верхним числом потребителей вместо простого значения

Console.pvc/alert#

Это расширение можно использовать для добавления пользовательских оповещений на странице сведений о PVC.

Имя

Тип значения

Обязательность применения

Описание

alert

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

нет

Компонент оповещения

Console.pvc/create-prop#

Это расширение можно использовать для указания дополнительных свойств, которые будут использоваться при создании ресурсов PVC на странице списка PVC.

Имя

Тип значения

Обязательность применения

Описание

label

string

нет

Ярлык для действия создания реквизита

path

string

нет

Путь для действия создания реквизита

Console.pvc/delete#

Это расширение позволяет подключиться к удалению ресурсов PVC. Он может предоставлять оповещения с дополнительной информацией и настраиваемой логикой удаления PVC.

Имя

Тип значения

Обязательность применения

Описание

predicate

CodeRef<(pvc: K8sResourceCommon) ⇒ boolean>

нет

Предикат, указывающий, использовать расширение или нет

onPVCKill

CodeRef<(pvc: K8sResourceCommon) ⇒ Promise>

нет

Метод операции удаления PVC

alert

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

нет

Компонент оповещений для отображения дополнительной информации

Console.pvc/status#

Имя

Тип значения

Обязательность применения

Описание

priority

number

нет

Приоритет статусного компонента. Большее значение означает более высокий приоритет

status

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

нет

Статусная составляющая

predicate

CodeRef<(pvc: K8sResourceCommon) ⇒ boolean>

нет

Предикат, указывающий, следует ли отображать компонент статуса или нет

Console.redux-reducer#

Добавляет новый редуктор в хранилище Console Redux, который работает с состоянием plugins.<scope>.

Имя

Тип значения

Обязательность применения

Описание

scope

string

нет

Ключ для представления подсостояния, управляемого редуктором, в объекте состояния Redux

reducer

CodeRef<Reducer<any, AnyAction>>

нет

Функция редуктора, работающая в подсостоянии, управляемом редуктором

Console.resource/create#

Это расширение позволяет плагинам предоставлять пользовательский компонент (например, мастер или форму) для определенных ресурсов, который будет отображаться, когда пользователи попытаются создать новый экземпляр ресурса.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sModel

нет

Модель, для которой будет отображаться эта страница создания ресурса

component

CodeRef<React.ComponentType>

нет

Компонент, который будет отображаться при совпадении модели

Console.storage-class/provisioner#

Добавляет новый поставщик классов хранения в качестве опции при создании класса хранения.

Имя

Тип значения

Обязательность применения

Описание

CSI

ProvisionerDetails

да

Тип поставщика интерфейса хранилища контейнеров

OTHERS

ProvisionerDetails

да

Другой тип поставщика

Console.storage-provider#

Это расширение можно использовать для выбора нового поставщика хранилища при подключении хранилища и компонента, специфичного для поставщика.

Имя

Тип значения

Обязательность применения

Описание

name

string

нет

Отображаемое имя провайдера

Component

CodeRef<React.ComponentType<Partial<RouteComponentProps<{}, StaticContext, any>>>>

нет

Компонент, специфичный для поставщика, для визуализации

Console.tab#

Добавляет вкладку в горизонтальную навигацию, соответствующую contextId.

Имя

Тип значения

Обязательность применения

Описание

contextId

string

нет

Идентификатор контекста, назначенный горизонтальной навигации, в которую будет вставлена вкладка. Возможные значения: dev-console-observe

name

string

нет

Отображаемая метка вкладки

href

string

нет

Добавленный href к существующему URL-адресу

component

CodeRef<React.ComponentType<PageComponentProps>>

нет

Компонент содержимого вкладки

Console.tab/horizontalNav#

Это расширение можно использовать для добавления вкладки на страницу сведений о ресурсе.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sKindVersionModel

нет

Модель, для которой этот поставщик показывает вкладку

page

{ name: string; href: string; }

нет

Страница, которая будет отображаться в горизонтальной вкладке. В качестве имени и href принимается имя вкладки

component

CodeRef<React.ComponentType<PageComponentProps>>

нет

Компонент, который будет отображаться при совпадении маршрута

Console.telemetry/listener#

Этот компонент можно использовать для регистрации функции, получающей события телеметрии. Эти события включают идентификацию пользователя, навигацию по страницам и другие события, специфичные для приложения. Слушатель может использовать эти данные для целей отчетности и анализа.

Имя

Тип значения

Обязательность применения

Описание

listener

CodeRef

нет

Прослушивание событий телеметрии

Console.topology/adapter/build#

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

Имя

Тип значения

Обязательность применения

Описание

adapt

CodeRef<(element: GraphElement) ⇒ AdapterDataType

undefined>

нет

Console.topology/adapter/network#

NetworkAdapater предоставляет адаптер для адаптации элемента к данным, которые могут использоваться компонентом Networking.

Имя

Тип значения

Обязательность применения

Описание

adapt

CodeRef<(element: GraphElement) ⇒ NetworkAdapterType undefined>

нет

Адаптер для адаптации элемента к данным, которые могут использоваться сетевым компонентом

Console.topology/adapter/pod#

PodAdapter предоставляет адаптация элемента к данным, которые могут использоваться компонентом Pod.

Имя

Тип значения

Обязательность применения

Описание

adapt

CodeRef<(element: GraphElement) ⇒ AdapterDataType undefined>

нет

Адаптер для адаптации элемента к данным, которые могут использоваться компонентом Pod

Console.topology/component/factory#

Getter для ViewComponentFactory.

Имя

Тип значения

Обязательность применения

Описание

getFactory

CodeRef

нет

Getter для ViewComponentFactory

Console.topology/create/connector#

Getter для функции создания соединителя.

Имя

Тип значения

Обязательность применения

Описание

getCreateConnector

CodeRef

нет

Getter для функции создания соединителя

Console.topology/data/factory#

Расширение фабрики топологической модели данных

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор завода

priority

number

нет

Приоритет для завода

resources

WatchK8sResourcesGeneric

да

Ресурсы, которые нужно получить с помощью useK8sWatchResources Webhook

workloadKeys

string[]

да

Ключи в ресурсах, содержащих рабочие нагрузки

getDataModel

CodeRef

да

Getter для фабрики моделей данных

isResourceDepicted

CodeRef

да

Getter для функции, определяющей, отображается ли ресурс в этой фабрике моделей

getDataModelReconciler

CodeRef

да

Getter для функции для согласования модели данных после загрузки всех моделей расширений

Console.topology/decorator/provider#

Расширение поставщика декоратора топологии

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор декоратора топологии, специфичного для расширения

priority

number

нет

Приоритет декоратора топологии, специфичного для расширения

quadrant

TopologyQuadrant

нет

Квадрант для декоратора топологии, специфичного для расширения

decorator

CodeRef

нет

Декоратор, специфичный для расширения

Console.topology/details/resource-alert#

DetailsResourceAlertвыдает предупреждение для конкретного контекста топологии или элемента графа.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор этого оповещения. Используется для сохранения состояния, если предупреждение не должно отображаться после закрытия

contentProvider

CodeRef<(element: GraphElement) ⇒ DetailsResourceAlertContent null>

нет

Крючок для возврата содержимого оповещения

DetailsResourceLink предоставляет ссылку на конкретный контекст топологии или элемент графа.

Имя

Тип значения

Обязательность применения

Описание

link

CodeRef<(element: GraphElement) ⇒ React.Component undefined>

нет

Верните ссылку на ресурс, если она предоставлена, в противном случае не определена. Используйте свойства ResourceIcon и ResourceLink для стилей

priority

number

да

Фабрика с более высоким приоритетом получит первую возможность создать ссылку

Console.topology/details/tab#

DetailsTab добавляет вкладку для панели сведений о топологии.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор этой вкладки сведений

label

string

нет

Метка вкладки, отображаемая в пользовательском интерфейсе

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. Значение insertBefore имеет приоритет

Console.topology/details/tab-section#

DetailsTabSection добавляет раздел для определенной вкладки на панели сведений о топологии.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Уникальный идентификатор для этого раздела вкладки сведений

tab

string

нет

Идентификатор родительской вкладки, которому должен соответствовать этот раздел

provider

CodeRef

нет

Перехватчик, который возвращает компонент, или, если он равен нулю или не определен, отображается на боковой панели топологии. Компонент SDK: <Section title=\{}> заполненная область

section

CodeRef<(element: GraphElement, renderNull?: () ⇒ null) ⇒ React.Component undefined>

нет

Устарело: резервный вариант, если поставщик не определен. renderNull уже не используется

insertBefore

string string[]

да

Вставьте этот элемент перед элементом, указанным здесь. Для массивов используется первый найденный по порядку

insertAfter

string string[]

да

Вставьте этот элемент после элемента, указанного здесь. Для массивов используется первый найденный по порядку. Значение insertBefore имеет приоритет

Console.topology/display/filters#

Расширение фильтров отображения топологии

Имя

Тип значения

Обязательность применения

Описание

getTopologyFilters

CodeRef<() ⇒ TopologyDisplayOption[]>

нет

Getter для фильтров топологии, специфичных для расширения

applyDisplayOptions

CodeRef

нет

Функция применения фильтров к модели

Console.topology/relationship/provider#

Расширение соединителя поставщика взаимосвязей топологии

Имя

Тип значения

Обязательность применения

Описание

provides

CodeRef

нет

Используйте, чтобы определить, можно ли создать соединение между исходным и целевым узлом

tooltip

string

нет

Подсказка, показывающая, когда операция соединителя нависает над целью перетаскивания, например «Создать визуальный соединитель»

create

CodeRef

нет

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

priority

number

нет

Приоритет отношений, более высокий будет предпочтителен в случае нескольких

Console.user-preference/group#

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

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор, используемый для идентификации группы предпочтений пользователя

label

string

нет

Метка группы предпочтений пользователя

insertBefore

string

да

Идентификатор группы предпочтений пользователя, перед которой должна быть размещена эта группа

insertAfter

string

да

Идентификатор группы предпочтений пользователя, после которой следует разместить эту группу

Console.user-preference/item#

Это расширение можно использовать для добавления элемента в группу пользовательских настроек на странице пользовательских настроек консоли.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор, используемый для идентификации элемента предпочтений пользователя и указанный в InsertAfter и InsertBefore для определения порядка элементов

label

string

нет

Ярлык предпочтений пользователя

description

string

нет

Описание предпочтений пользователя

field

UserPreferenceField

нет

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

groupId

string

да

Идентификаторы, используемые для идентификации групп пользовательских предпочтений, к которым будет принадлежать элемент

insertBefore

string

да

Идентификатор элемента пользовательских предпочтений, перед которым должен быть размещен этот элемент

insertAfter

string

да

Идентификатор элемента пользовательских предпочтений, после которого следует разместить этот элемент

Console.yaml-template#

Шаблоны YAML для редактирования ресурсов через редактор yaml.

Имя

Тип значения

Обязательность применения

Описание

model

ExtensionK8sModel

нет

Модель, связанная с шаблоном

template

CodeRef

нет

Шаблон YAML

name

string

нет

Имя шаблона. Используйте имя default , чтобы отметить его как шаблон по умолчанию

dev-Console.add/action#

Это расширение позволяет плагинам добавлять элемент действия Add на страницу с ролью разработчика. Например, бессерверный плагин может создать новый элемент действия для добавления бессерверных функций на страницу консоли разработчика.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор, используемый для идентификации действия

label

string

нет

Ярлык действия

description

string

нет

Описание действия

href

string

нет

Объект href для перехода

groupId

string

да

Идентификаторы, используемые для идентификации групп действий, к которым будет принадлежать действие

icon

CodeRef<React.ReactNode>

да

Значок отображения перспективы

accessReview

AccessReviewResourceAttributes[]

да

Дополнительный просмотр доступа для контроля видимости или включения действия

dev-console.add/action-group#

Это расширение позволяет плагинам добавлять группу на странице консоли разработчика. На группы могут ссылаться действия, которые будут объединены на странице добавления действий на основе определения их расширения. Например, плагин Serverless может добавить группу Serverless вместе с несколькими добавленными действиями.

Имя

Тип значения

Обязательность применения

Описание

id

string

нет

Идентификатор, используемый для идентификации группы действий

name

string

нет

Название группы действий

insertBefore

string

да

Идентификатор группы действий, перед которой должна быть размещена эта группа

insertAfter

string

да

ID группы действий, после которой следует разместить эту группу

dev-console.import/environment#

Это расширение можно использовать для указания дополнительных полей переменных среды сборки под селектором образа компоновщика в форме импорта git консоли разработчика. Если этот параметр установлен, поля будут переопределять одноименные переменные среды в разделе сборки.

Имя

Тип значения

Обязательность применения

Описание

imageStreamName

string

нет

Имя потока изображений, для которого необходимо предоставить пользовательские переменные среды

imageStreamTags

string[]

нет

Список поддерживаемых тегов потока изображений

environments

ImageEnvironment[]

нет

Список переменных среды

useActivePerspective#

Webhook, который предоставляет текущую активную перспективу и обратный вызов для установки активной перспективы. Он возвращает ответ, содержащий текущую активную роль и обратный вызов установщика.

Пример


const Component: React.FC = (props) => {
   const [activePerspective, setActivePerspective] = useActivePerspective();
   return <select
     value={activePerspective}
     onChange={(e) => setActivePerspective(e.target.value)}
   >
     {
       // ...perspective options
     }
   </select>
}

GreenCheckCircleIcon#

Компонент, отображающий знак успешного исполнения - зеленую галочку.

Пример

Имя параметра

Описание

className

(необязательно) дополнительное имя класса для компонента

title

(необязательно) название значка

size

(необязательно) размер значка: ( sm, md, lg, xl)

RedExclamationCircleIcon#

Компонент для отображения значка в виде красного восклицательного знака.

Пример


<GreenCheckCircleIcon title="Healthy" />

Имя

Тип значения

className

(необязательно) дополнительное имя класса для компонента

title

(необязательно) название значка

size

(необязательно) размер значка: ( sm, md, lg, xl)

YellowExclamationTriangleIcon#

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

Пример


<YellowExclamationTriangleIcon title="Warning" />

Имя

Тип значения

className

(необязательно) дополнительное имя класса для компонента

title

(необязательно) название значка

size

(необязательно) размер значка: ( sm, md, lg, xl)

BlueInfoCircleIcon#

Компонент для отображения синего информационного круга.

Пример


<BlueInfoCircleIcon title="Info" />

Имя

Тип значения

className

(необязательно) дополнительное имя класса для компонента

title

(необязательно) название значка

size

(необязательно) размер значка: (sm, md, lg, xl)

ErrorStatus#

Компонент для отображения всплывающего сообщения о статусе ошибки.

Пример


<ErrorStatus title={errorMsg} />

Имя

Тип значения

title

(необязательно) текст статуса

iconOnly

(необязательно), если true, отображается только значок

noTooltip

(необязательно), если true, всплывающая подсказка не будет отображаться

className

(необязательно) дополнительное имя класса для компонента

popoverTitle

(необязательно) заголовок всплывающего окна

InfoStatus#

Компонент для отображения всплывающего окна с информацией о статусе.

Пример


<InfoStatus title={infoMsg} />

Имя

Тип значения

title

(необязательно) текст статуса

iconOnly

(необязательно), если true, отображается только значок

noTooltip

(необязательно), если true, всплывающая подсказка не будет отображаться.

className

(необязательно) дополнительное имя класса для компонента

popoverTitle

(необязательно) заголовок всплывающего окна

ProgressStatus#

Компонент для отображения всплывающего окна о прогрессе статуса.

Пример


<ProgressStatus title={progressMsg} />

Имя

Тип значения

title

(необязательно) текст статуса

iconOnly

(необязательно), если true, отображается только значок

noTooltip

(необязательно), если true, всплывающая подсказка не будет отображаться

className

(необязательно) дополнительное имя класса для компонента

popoverTitle

(необязательно) заголовок всплывающего окна

SuccessStatus#

Компонент для отображения всплывающего окна о статусе успеха.

Пример


<SuccessStatus title={successMsg} />

Имя

Тип значения

title

(необязательно) текст статуса

iconOnly

(необязательно), если true, отображается только значок

noTooltip

(необязательно), если true, всплывающая подсказка не будет отображаться

className

(необязательно) дополнительное имя класса для компонента

popoverTitle

(необязательно) заголовок всплывающего окна

checkAccess#

Предоставляет информацию о доступе пользователя к данному ресурсу. Он возвращает объект с информацией о доступе к ресурсу.

Имя

Тип значения

resourceAttributes

атрибуты ресурса для проверки доступа

impersonate

подробности о выдаче себя за другое лицо

useAccessReview#

Webhook, предоставляющий информацию о доступе пользователя к данному ресурсу. Он возвращает массив со значениями isAllowedи loading.

Имя

Тип значения

resourceAttributes

атрибуты ресурса для проверки доступа

impersonate

подробности о выдаче себя за другое лицо

useResolvedExtensions#

Перехватчик React для использования расширений консоли с разрешенными CodeRef свойствами. Этот Webhook принимает тот же аргумент(ы), что и useExtensions Webhook, и возвращает адаптированный список экземпляров расширения, разрешая все ссылки на код в свойствах каждого расширения.

Первоначально Webhook возвращает пустой массив. После завершения разрешения компонент React повторно отображается с помощью Webhook, возвращающего адаптированный список расширений. При изменении списка соответствующих расширений разрешение перезапускается. Webhook будет продолжать возвращать предыдущий результат до тех пор, пока разрешение не завершится.

Элементы результата Webhook гарантированно будут повторяться при повторной визуализации. Webhook возвращает ответ, содержащий список адаптированных экземпляров расширения с разрешенными ссылками на код, логический флаг, указывающий, завершено ли разрешение, и список ошибок, обнаруженных во время разрешения.

Пример


const [navItemExtensions, navItemsResolved] = useResolvedExtensions<NavItem>(isNavItem);
// process adapted extensions and render your component

Имя

Тип значения

typeGuards

Список обратных вызовов, каждый из которых принимает динамическое расширение плагина в качестве аргумента и возвращает логический флаг, указывающий, соответствует ли расширение желаемым ограничениям типа

HorizontalNav#

Компонент, создающий панель навигации для страницы. Маршрутизация обрабатывается как часть компонента. Console.tab/horizontalNav может использоваться для добавления дополнительного контента к любой горизонтальной навигации.

Пример


const HomePage: React.FC = (props) => {
    const page = {
      href: '/home',
      name: 'Home',
      component: () => <>Home</>
    }
    return <HorizontalNav match={props.match} pages={[page]} />
}

Имя

Тип значения

resource

Ресурс, связанный с панелью навигации, объект типа K8sResourceCommon

pages

Массив объектов страницы

match

Объект соответствия, предоставленный React Router

VirtualizedTable#

Компонент для создания виртуализированных таблиц.

Пример


const MachineList: React.FC<MachineListProps> = (props) => {
  return (
    <VirtualizedTable<MachineKind>
     {...props}
     aria-label='Machines'
     columns={getMachineColumns}
     Row={getMachineTableRow}
    />
  );
}

Имя

Тип значения

data

данные для таблицы

loaded

флаг, указывающий, что данные загружены

loadError

объект ошибки, если проблема с загрузкой данных

columns

настройка столбца

Row

настройка строки

unfilteredData

исходные данные без фильтра

NoDataEmptyMsg

(необязательно) нет данных, пустой компонент сообщения

EmptyMsg

(необязательно) пустой компонент сообщения

scrollNode

(необязательно) функция для обработки прокрутки

label

(необязательно) этикетка для таблицы

ariaLabel

(необязательно) метка арии

gridBreakPoint

определение размера сетки для обеспечения отзывчивости

onSelect

(необязательно) функция для обработки выбора таблицы

rowData

(необязательно) данные, специфичные для строки

TableData#

Компонент для отображения данных таблицы внутри строки таблицы.

Пример


const PodRow: React.FC<RowProps<K8sResourceCommon>> = ({ obj, activeColumnIDs }) => {
  return (
    <>
      <TableData id={columns[0].id} activeColumnIDs={activeColumnIDs}>
        <ResourceLink kind="Pod" name={obj.metadata.name} namespace={obj.metadata.namespace} />
      </TableData>
      <TableData id={columns[1].id} activeColumnIDs={activeColumnIDs}>
        <ResourceLink kind="Namespace" name={obj.metadata.namespace} />
      </TableData>
    </>
  );
};

Имя

Тип значения

id

уникальный идентификатор таблицы

activeColumnIDs

активные столбцы

className

(необязательно) имя класса опции для стилизации

useActiveColumns#

Перехватчик, который предоставляет список выбранных пользователем активных TableColumns.

Пример


// See implementation for more details on TableColumn type
  const [activeColumns, userSettingsLoaded] = useActiveColumns({
    columns,
    showNamespaceOverride: false,
    columnManagementID,
  });
  return userSettingsAreLoaded ? <VirtualizedTable columns={activeColumns} {...otherProps} /> : null

Имя

Тип значения

options

Которые передаются как карта значений ключа

{TableColumn[]} options.columns

Массив всех доступных TableColumns

{boolean} [options.showNamespaceOverride]

(необязательно) Если это правда, столбец пространства имен будет включен независимо от выбора управления столбцами

{string} [options.columnManagementID]

(необязательно) Уникальный идентификатор, используемый для сохранения и извлечения параметров управления столбцами в пользовательские настройки и из них. Обычно это строка группы/версии/вида (GVK) для ресурса

Кортеж, содержащий активные столбцы, выбранные текущим пользователем (подмножество options.columns), и логический флаг, указывающий, загружены ли пользовательские настройки.

ListPageHeader#

Компонент для генерации шапки страницы.

Пример


const exampleList: React.FC = () => {
  return (
    <>
      <ListPageHeader title="Example List Page"/>
    </>
  );
};

Имя

Тип значения

title

заголовок заголовка

helpText

(необязательно) раздел справки как узел реагирования

badge

(необязательно) значок значка в качестве узла реагирования

ListPageCreate#

Компонент для добавления кнопки создания для определенного типа ресурса, который автоматически генерирует ссылку на YAML-файл создания для этого ресурса.


const exampleList: React.FC<MyProps> = () => {
  return (
    <>
      <ListPageHeader title="Example Pod List Page"/>
        <ListPageCreate groupVersionKind="Pod">Create Pod</ListPageCreate>
      </ListPageHeader>
    </>
  );
};

Имя

Тип значения

groupVersionKind

группа/версия/вид ресурсов, которые будут представляться

Компонент для создания стилизованной ссылки.

Пример


const exampleList: React.FC<MyProps> = () => {
 return (
  <>
   <ListPageHeader title="Example Pod List Page"/>
      <ListPageCreateLink to={'/link/to/my/page'}>Create Item</ListPageCreateLink>
   </ListPageHeader>
  </>
 );
};

Имя

Тип значения

to

расположение строки, куда должна вести ссылка

createAccessReview

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

children

(необязательно) дочерние элементы компонента

ListPageCreateButton#

Компонент для создания кнопки.

Пример


const exampleList: React.FC<MyProps> = () => {
  return (
    <>
      <ListPageHeader title="Example Pod List Page"/>
        <ListPageCreateButton createAccessReview={access}>Create Pod</ListPageCreateButton>
      </ListPageHeader>
    </>
  );
};

Имя

Тип значения

createAccessReview

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

pfButtonProps

(необязательно) Реквизит Patternfly Button

ListPageCreateDropdown#

Компонент для создания раскрывающегося списка с проверкой разрешений.


const exampleList: React.FC<MyProps> = () => {
  const items = {
    SAVE: 'Save',
    DELETE: 'Delete',
  }
  return (
    <>
     <ListPageHeader title="Example Pod List Page"/>
       <ListPageCreateDropdown createAccessReview={access} items={items}>Actions</ListPageCreateDropdown>
     </ListPageHeader>
    </>
  );
};

Имя

Тип значения

items

key:ReactNode пары элементов для отображения в раскрывающемся компоненте

onClick

функция обратного вызова для щелчка по элементам раскрывающегося списка

createAccessReview

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

children

(необязательно) дочерние элементы для переключателя раскрывающегося списка

ListPageFilter#

Компонент, который генерирует фильтр для страницы списка.

Пример


  // See implementation for more details on RowFilter and FilterValue types
  const [staticData, filteredData, onFilterChange] = useListPageFilter(
    data,
    rowFilters,
    staticFilters,
  );
  // ListPageFilter updates filter state based on user interaction and resulting filtered data can be rendered in an independent component.
  return (
    <>
      <ListPageHeader .../>
      <ListPagBody>
        <ListPageFilter data={staticData} onFilterChange={onFilterChange} />
        <List data={filteredData} />
      </ListPageBody>
    </>
  )

Имя

Тип значения

data

Массив точек данных

loaded

указывает на то, что данные загружены

onFilterChange

функция обратного вызова при обновлении фильтра

rowFilters

(необязательно) Массив элементов RowFilter, определяющих доступные параметры фильтра

nameFilterPlaceholder

(необязательно) заполнитель для фильтра имени

labelFilterPlaceholder

(необязательно) заполнитель для фильтра меток

hideLabelFilter

(необязательно) показывает только фильтр имени вместо фильтра имени и метки

hideNameLabelFilter

(необязательно) скрывает фильтр имени и ярлыка

columnLayout

(необязательно) объект макета столбца

hideColumnManagement

(необязательно) флаг, чтобы скрыть управление столбцами

useListPageFilter#

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

Пример


  // See implementation for more details on RowFilter and FilterValue types
  const [staticData, filteredData, onFilterChange] = useListPageFilter(
    data,
    rowFilters,
    staticFilters,
  );
  // ListPageFilter updates filter state based on user interaction and resulting filtered data can be rendered in an independent component.
  return (
    <>
      <ListPageHeader .../>
      <ListPagBody>
        <ListPageFilter data={staticData} onFilterChange={onFilterChange} />
        <List data={filteredData} />
      </ListPageBody>
    </>
  )

Имя

Тип значения

data

Массив точек данных

rowFilters

(необязательно) Массив элементов RowFilter, определяющих доступные параметры фильтра

staticFilters

(необязательно) Массив элементов FilterValue, которые статически применяются к данным

Компонент, который создает ссылку на определенный тип ресурса со значком.

Пример


  <ResourceLink
      kind="Pod"
      name="testPod"
      title={metadata.uid}
  />

Имя

Тип значения

kind

(необязательно) тип ресурса, например Pod, Deployment, Namespace

groupVersionKind

(необязательно) объект с группой, версией и типом

className

(необязательно) стиль класса для компонента

displayName

(необязательно) отображаемое имя компонента, заменяет имя ресурса, если оно установлено

inline

(необязательно) флаг для создания значка и имени, встроенного в дочерние элементы

linkTo

(необязательно) флаг для создания объекта Link — по умолчанию установлено значение true

name

(необязательно) название ресурса

namespace

(необязательно) конкретное пространство имен для типа ресурса, на который будет ссылаться

hideIcon

(необязательно) флаг, чтобы скрыть значок значка

title

(необязательно) заголовок объекта ссылки (не отображается)

dataTest

(необязательно) идентификатор для тестирования

onClick

(необязательно) функция обратного вызова при нажатии на компонент

truncate

(необязательно) флаг для обрезания длинной ссылки

ResourceIcon#

Компонент, создающий знак для определенного типа ресурса.

Пример


<ResourceIcon kind="Pod"/>

Имя

Тип значения

kind

(необязательно) тип ресурса, например Pod, Deployment, Namespace

groupVersionKind

(необязательно) объект с группой, версией и типом

className

(необязательно) стиль класса для компонента

useK8sModel#

Webhook, который извлекает модель k8s для предоставленного K8sGroupVersionKind из redux. Он возвращает массив, в котором первый элемент — модель k8s, а второй элемент — inFlight статус.

Пример


const Component: React.FC = () => {
  const [model, inFlight] = useK8sModel({ group: 'app'; version: 'v1'; kind: 'Deployment' });
  return ...
}

Имя

Тип значения

groupVersionKind

группа, версия, тип ресурса k8s K8sGroupVersionKind является предпочтительным, альтернативно может передавать ссылку на группу, версию, тип, который устарел, т. е. группа/версия/вид (GVK) K8sResourceKindReference

useK8sModels#

Webhook, который извлекает все текущие модели k8s из redux. Он возвращает массив, в котором первый элемент — это список моделей k8s, а второй элемент — inFlight статус.

Пример


const Component: React.FC = () => {
  const [models, inFlight] = UseK8sModels();
  return ...
}

useK8sWatchResource#

Перехватчик, который извлекает ресурс k8s вместе со статусом загрузки и ошибкой. Он возвращает массив с первым элементом в качестве ресурса(ов), вторым элементом в качестве статуса загрузки и третьим элементом в качестве состояния ошибки, если таковая имеется.

Пример


const Component: React.FC = () => {
  const watchRes = {
        ...
      }
  const [data, loaded, error] = useK8sWatchResource(watchRes)
  return ...
}

Имя

Тип значения

initResource

варианты, необходимые для наблюдения за ресурсом.

useK8sWatchResources#

Перехватчик, который извлекает ресурсы k8s вместе с их соответствующим статусом загрузки и ошибки. Он возвращает карту, где ключи указаны в initResouces, а значение имеет три свойства: данные загружены и ошибка.

Пример


const Component: React.FC = () => {
  const watchResources = {
        'deployment': {...},
        'pod': {...}
        ...
      }
  const {deployment, pod} = useK8sWatchResources(watchResources)
  return ...
}

Имя

Тип значения

initResources

Ресурсы необходимо просматривать как пару ключ-значение, где ключ будет уникальным для ресурса, а значение будет параметром, необходимым для наблюдения за соответствующим ресурсом

ConsoleFetch#

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

Имя

Тип значения

url

URL-адрес для получения

options

Параметры передачи для извлечения

timeout

Таймаут в миллисекундах

ConsoleFetchJSON#

Пользовательская оболочка fetch, которая добавляет заголовки, специфичные для консоли, и допускает повторные попытки и таймауты. Оболочка также проверяет код состояния ответа и выдает соответствующую ошибку или при необходимости осуществляет выход пользователя из системы. Она возвращает ответ в виде объекта JSON. Использует consoleFetch. Ответ преобразуется в объект JSON.

Имя

Тип значения

url

URL-адрес для получения

method

Используемый метод HTTP. По умолчанию GET

options

Параметры передачи для извлечения

timeout

Таймаут в миллисекундах

cluster

Имя кластера, к которому будет сделан запрос. По умолчанию используется активный кластер, выбранный пользователем

ConsoleFetchText#

Пользовательская оболочка fetch, которая добавляет заголовки, специфичные для консоли, и допускает повторные попытки и таймауты. Оболочка также проверяет код состояния ответа и выдает соответствующую ошибку или при необходимости осуществляет выход пользователя из системы. Она возвращает ответ в виде текста. Использует console Fetch.

Имя

Тип значения

url

URL-адрес для получения

options

Параметры передачи для извлечения

timeout

Таймаут в миллисекундах

cluster

Имя кластера, к которому будет сделан запрос. По умолчанию используется активный кластер, выбранный пользователем

getConsoleRequestHeaders#

Функция, которая создает заголовки, связанные с олицетворением и мультикластером, для запросов API, используя текущее состояние редукции. Она возвращает объект, содержащий соответствующие заголовки олицетворения и запроса кластера, на основе состояния редукции.

Имя

Тип значения

targetCluster

Переопределить текущий активный кластер с помощью предоставленного targetCluster

k8sGetResource#

Инструмент извлекает ресурс из кластера на основе предоставленных параметров. Если указано имя, k8sGetResource возвращает один соответствующий ему ресурс, в противном случае — возвращаются все ресурсы, соответствующие модели. Он возвращает сообщение с объектом JSON, содержащим ресурс. Если не указано имя ресурса - буду выведены все ресурсы соответствующие модели. В случае неудачи вызов отклоняется с ответом об ошибке HTTP.

Имя

Тип значения

options

Передача в качестве пары ключ-значение

options.model

Модель k8s

options.name

Имя ресурса. Если оно не указано, будет выполнен поиск всех ресурсов, соответствующих модели

options.ns

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

options.path

Добавление пути

options.queryParams

Параметры запроса, которые будут включены в URL-адрес

options.requestInit

Извлечение объекта инициализации, который нужно использовать. Он может содержать заголовки запроса, метод, перенаправление и т. д.

k8sCreateResource#

k8sCreateResource создает ресурс в кластере на основе предоставленных параметров. Он создает запрос, который разрешается при успешном создании ресурса. В случае неудачи запрос отклоняется с ответом об ошибке HTTP.

Имя

Тип значения

options

Отображение в виде пары ключ-значение

options.model

Модель k8s

options.data

Полезная нагрузка для создаваемого ресурса

options.path

Добавление пути

options.queryParams

Параметры запроса, которые будут включены в URL-адрес

k8sUpdateResource#

Инструмент k8sUpdateResource обновляет весь ресурс в кластере на основе предоставленных параметров. Когда клиенту необходимо полностью заменить существующий ресурс, он может использовать k8sUpdate. Альтернативно можно использовать k8sPatch для выполнения частичного обновления. Он возвращает запрос, который соответствует ответу обновленного ресурса. В случае неудачи запрос отклоняется с ответом об ошибке HTTP.

Имя

Тип значения

options

Отображение в виде пары ключ-значение

options.model

Модель k8s

options.data

Полезная нагрузка для ресурса k8s будет обновлена

options.ns

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

options.name

Имя ресурса, которое необходимо обновить

options.path

Добавление пути

options.queryParams

Параметры запроса, которые будут включены в URL-адрес

k8sPatchResource#

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

Имя

Тип значения

options

Отображение в виде пары ключ-значение

options.model

Модель k8s

options.resource

Ресурс, который необходимо исправить

options.data

Только данные, которые нужно исправить на существующем ресурсе, с указанием операции, пути и значения

options.path

Добавление пути

options.queryParams

Параметры запроса, которые будут включены в URL-адрес

k8sDeleteResource#

k8sDeleteResource удаляет ресурсы из кластера на основе предоставленной модели ресурса. Сбор мусора работает на основе Foreground | Background можно настроить с помощью свойства propagationPolicy в предоставленной модели или передать в json. Он возвращает сообщение, которое разрешается в ответ типа Status. В случае неудачи сообщение отклоняется с ответом об ошибке HTTP.

Пример


kind: 'DeleteOptions', apiVersion: 'v1', propagationPolicy

Имя

Тип значения

options

Отображение в виде пары ключ-значение

options.model

Модель k8s

options.resource

Ресурс, который необходимо удалить

options.path

Добавление пути

options.queryParams

Параметры запроса, которые будут включены в URL-адрес

options.requestInit

Извлечение объекта инициализации, который нужно использовать. Он может иметь заголовки запроса, метод, перенаправление и т. д.

options.json

Включение контроля сбора ресурсов, если это предусмотрено, иначе по умолчанию будет использоваться «propagationPolicy» модели

k8sListResource#

Перечисляет ресурсы в виде массива в кластере на основе предоставленных параметров. Он возвращает обещание, которое разрешается в ответ.

Имя

Тип значения

options

Отображение в виде пары ключ-значение

options.model

модель k8s

options.queryParams

Параметры запроса должны быть включены в URL-адрес, а также могут передаваться селекторам меток с помощью ключа «labelSelector»

options.requestInit

Извлечение объекта инициализации, который нужно использовать. Он может иметь заголовки запроса, метод, перенаправление и т. д.

k8sListResourceItems#

Тот же интерфейс, что и у k8sListResource, но возвращает элементы. Он возвращает apiVersion для модели, т. е. group/version.

getAPIVersionForModel#

Предоставляет apiVersion для модели k8s.

Имя

Тип значения

model

Модель k8s

getGroupVersionKindForResource#

Предоставляет группу, версию и тип ресурса. Он возвращает группу, версию и тип предоставленного ресурса. Если у ресурса нет группы API, будет возвращена группа «core». Если ресурс имеет недопустимую версию apiVersion, он выдаст ошибку.

Имя

Тип значения

resource

Ресурс k8s

getGroupVersionKindForModel#

Предоставляет группу, версию и тип модели k8s. Возвращает группу, версию и тип предоставленной модели. Если в модели нет apiGroup, будет возвращена группа «core».

Имя

Тип значения

model

Модель k8s

StatusPopupSection#

Компонент, который показывает статус во всплывающем окне. Компонент для создания console.dashboards/overview/health/resource расширений.


  <StatusPopupSection
    firstColumn={
      <>
        <span>{title}</span>
        <span className="text-secondary">
          My Example Item
        </span>
      </>
    }
    secondColumn='Status'
  >

Имя

Тип значения

firstColumn

значения для первого столбца всплывающего окна

secondColumn

(необязательно) значения для второго столбца всплывающего окна

children

(необязательно) дочерние объекты для всплывающего окна

StatusPopupItem#

Элемент статуса, используемый во всплывающем окне статуса; используется в StatusPopupSection.

Пример


<StatusPopupSection
   firstColumn='Example'
   secondColumn='Status'
>
   <StatusPopupItem icon={healthStateMapping[MCGMetrics.state]?.icon}>
      Complete
   </StatusPopupItem>
   <StatusPopupItem icon={healthStateMapping[RGWMetrics.state]?.icon}>
       Pending
   </StatusPopupItem>
</StatusPopupSection>

Имя

Тип значения

value

(необязательно) текстовое значение для отображения

icon

(необязательно) значок для отображения

children

дочерние элементы

Overview#

Создает компонент-оболочку для информационной панели.

Пример


    <Overview>
      <OverviewGrid mainCards={mainCards} leftCards={leftCards} rightCards={rightCards} />
    </Overview>

Имя

Тип значения

className

(необязательно) класс стиля для div

children

(опционально) элементы панели

OverviewGrid#

Создает сетку элементов карточки для дашборда; используется внутри Overview.

Пример


    <Overview>
      <OverviewGrid mainCards={mainCards} leftCards={leftCards} rightCards={rightCards} />
    </Overview>

Имя

Тип значения

mainCards

карточки для сетки

leftCards

(необязательно) карточки для левой стороны сетки

rightCards

(необязательно) карточки для правой стороны сетки

InventoryItem#

Создает элемент карточки инструментария.

Пример


  return (
    <InventoryItem>
      <InventoryItemTitle>{title}</InventoryItemTitle>
      <InventoryItemBody error={loadError}>
        {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />}
      </InventoryItemBody>
    </InventoryItem>
  )

Имя

Тип значения

children

Элементы для визуализации внутри элемента

InventoryItemTitle#

Создает заголовок для элемента карты инструментов; используется внутри InventoryItem.

Пример


 return (
   <InventoryItem>
     <InventoryItemTitle>{title}</InventoryItemTitle>
     <InventoryItemBody error={loadError}>
       {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />}
     </InventoryItemBody>
   </InventoryItem>
 )

Имя

Тип значения

children

Элементы для визуализации внутри заголовка

InventoryItemBody#

Создает тело инвентарной карточки; используется внутри InventoryCard и может использоваться с InventoryTitle.

Пример


 return (
   <InventoryItem>
     <InventoryItemTitle>{title}</InventoryItemTitle>
     <InventoryItemBody error={loadError}>
       {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />}
     </InventoryItemBody>
   </InventoryItem>
 )

Имя

Тип значения

children

Элементы для визуализации внутри инвентарной карточки или заголовка

error

Элементы div

InventoryItemStatus#

Создает счетчик и значок для инвентарной карточки с дополнительным адресом ссылки; используется внутри InventoryItemBody

Пример


 return (
   <InventoryItem>
     <InventoryItemTitle>{title}</InventoryItemTitle>
     <InventoryItemBody error={loadError}>
       {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />}
     </InventoryItemBody>
   </InventoryItem>
 )

Имя

Тип значения

count

считать для отображения

icon

значок для отображения

linkTo

(необязательно) адрес ссылки

InventoryItemLoading#

Создает скелетный контейнер при загрузке карточки инвентаря; используется с InventoryItem и родственными компонентами.

Пример


if (loadError) {
   title = <Link to={workerNodesLink}>{t('Worker Nodes')}</Link>;
} else if (!loaded) {
  title = <><InventoryItemLoading /><Link to={workerNodesLink}>{t('Worker Nodes')}</Link></>;
}
return (
  <InventoryItem>
    <InventoryItemTitle>{title}</InventoryItemTitle>
  </InventoryItem>
)

useFlag#

Webhook, который возвращает данный флаг функции из состояния FLAGS redux. Он возвращает логическое значение запрошенного флага функции или неопределенное значение.

Имя

Тип значения

flag

Флаг функции, который нужно вернуть

YAMLEditor#

Базовый редактор YAML с отложенной загрузкой, поддержкой при наведении и завершении.

Пример


<React.Suspense fallback={<LoadingBox />}>
  <YAMLEditor
    value={code}
  />
</React.Suspense>

Имя

Тип значения

value

Строка, представляющая код YAML для визуализации

options

Параметры редактора Monako

minHeight

Минимальная высота редактора в допустимых значениях высоты CSS

showShortcuts

Логическое значение для отображения ярлыков поверх редактора

toolbarLinks

Массив ReactNode, отображаемый в разделе ссылок на панели инструментов в верхней части редактора

onChange

Обратный вызов для события изменения кода

onSave

Обратный вызов вызывается при срабатывании команды CTRL/CMD+S

ref

Реакция на ссылку на { editor?: IStandaloneCodeEditor }. Используя это свойство editor, получается доступ ко всем методам управления редактором

ResourceYAMLEditor#

Редактор YAML с отложенной загрузкой для ресурсов Kubernetes с подсказкой по наведению и завершением. Компонент использует YAMLEditor и добавляет к нему дополнительные функции, такие как обработка обновлений ресурсов, оповещения, кнопки сохранения, отмены и перезагрузки, специальные возможности и многое другое. Если обратный вызов onSave не предусмотрен, обновление ресурса обрабатывается автоматически. ResourceYAMLEditor должен быть включен в компонент React.Suspense.

Пример


<React.Suspense fallback={<LoadingBox />}>
  <ResourceYAMLEditor
    initialResource={resource}
    header="Create resource"
    onSave={(content) => updateResource(content)}
  />
</React.Suspense>

Имя

Тип значения

initialResource

YAML/Объект, представляющий ресурс, который будет отображаться редактором. Этот реквизит используется только во время первоначальной визуализации

header

Добавление заголовка поверх редактора YAML

onSave

Обратный вызов для кнопки Save. Его передача переопределит обновление по умолчанию, выполняемое для ресурса редактором

ResourceEventStream#

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

Пример


const [resource, loaded, loadError] = useK8sWatchResource(clusterResource);
return <ResourceEventStream resource={resource} />

Имя

Тип значения

resource

Объект, связанные события которого должны быть показаны

usePrometheusPoll#

Настраивает запрос в Prometheus. usePrometheusPoll возвращает последовательность, содержащую ответ на запрос, логический флаг, указывающий, завершен ли ответ, а также любые ошибки, обнаруженные во время запроса или последующей обработки запроса.

Имя

Тип значения

{PrometheusEndpoint} props.endpoint

одна из PrometheusEndpoint (метка, запрос, диапазон, правила, цели)

{string} [props.query]

(необязательно) Строка запроса Prometheus. Если оно пусто или не определено, опрос не запускается.

{number} [props.delay]

(необязательно) интервал задержки опроса (мс)

{number} [props.endTime]

(необязательно) для точки QUERY_RANGE, конец диапазона запроса.

{number} [props.samples]

(необязательно) для точки QUERY_RANGE

{number} [options.timespan]

(необязательно) для точки QUERY_RANGE

{string} [options.namespace]

(необязательно) параметр поиска для добавления

{string} [options.timeout]

(необязательно) параметр поиска для добавления

Timestamp#

Компонент для отображения временной метки. Временные метки синхронизируются между отдельными экземплярами компонента Timestamp. Предоставленная временная метка форматируется в соответствии с языковыми стандартами пользователя.

Имя

Тип значения

timestamp

Временная метка для визуализации. Ожидается, что формат будет ISO 8601 (используется Kubernetes), временной меткой эпохи или экземпляром даты

simple

Визуализируйте простую версию компонента без значка и всплывающей подсказки

omitSuffix

Форматирует дату без суффикса

className

Дополнительное имя класса для компонента

useModal#

Запуск модальных окон.

Пример


const context: AppPage: React.FC = () => {<br/> const [launchModal] = useModal();<br/> const onClick = () => launchModal(ModalComponent);<br/> return (<br/>   <Button onClick={onClick}>Launch a Modal</Button><br/> )<br/>}<br/>`

ActionServiceProvider#

Компонент, позволяющий получать вклады от других плагинов для типа расширения console.action/provider.

Пример


   const context: ActionContext = { 'a-context-id': { dataFromDynamicPlugin } };

   ...

   <ActionServiceProvider context={context}>
       {({ actions, options, loaded }) =>
         loaded && (
           <ActionMenu actions={actions} options={options} variant={ActionMenuVariant.DROPDOWN} />
         )
       }
   </ActionServiceProvider>

Имя

Тип значения

context

Объект с contextId и дополнительными данными плагина

NamespaceBar#

Компонент, который отображает горизонтальную панель инструментов с раскрывающимся меню пространства имен в крайнем левом положении. Дополнительные компоненты можно передать как дочерние, и они будут отображаться справа от раскрывающегося списка пространства имен. Этот компонент предназначен для использования в верхней части страницы. Его следует использовать на страницах, где пользователю необходимо иметь возможность изменять активное пространство имен, например на страницах с ресурсами k8s.

Пример


   const logNamespaceChange = (namespace) => console.log(`New namespace: ${namespace}`);

   ...

   <NamespaceBar onNamespaceChange={logNamespaceChange}>
     <NamespaceBarApplicationSelector />
   </NamespaceBar>
   <Page>

     ...

Имя

Тип значения

onNamespaceChange

(необязательно) Функция, которая выполняется при выборе опции пространства имен. Он принимает новое пространство имен в виде строки в качестве единственного аргумента. Активное пространство имен обновляется автоматически при выборе опции, но с помощью этой функции можно применить дополнительную логику. При изменении пространства имен параметр пространства имен в URL-адресе будет изменен с предыдущего пространства имен на вновь выбранное пространство имен

isDisabled

(необязательно) Логический флаг, который отключает раскрывающийся список пространства имен, если установлено значение true. Этот параметр применяется только к раскрывающемуся списку пространства имен и не влияет на дочерние компоненты

children

(необязательно) Дополнительные элементы, которые будут отображаться на панели инструментов справа от раскрывающегося списка пространства имен

ErrorBoundaryFallbackPage#

Создает полностраничный компонент ErrorBoundaryFallbackPage для отображения сообщения об ошибке. Cообщение вместе с трассировкой стека и другой полезной информацией для отладки. Его следует использовать вместе с компонентом.

Пример


//in ErrorBoundary component
 return (
   if (this.state.hasError) {
     return <ErrorBoundaryFallbackPage errorMessage={errorString} componentStack={componentStackString}
      stack={stackTraceString} title={errorString}/>;
   }

   return this.props.children;
)

Имя

Тип значения

errorMessage

текстовое описание сообщения об ошибке

componentStack

трассировка компонента исключения

stack

трассировка стека исключения

title

заголовок для отображения в качестве заголовка страницы границы ошибки

Сценарии быстрого старта в веб-консоли#

Cледуйте рекомендациям раздела при создании руководства по быстрому старту, чтобы обеспечить единообразный пользовательский интерфейс при всех быстрых стартах. Сценарий быстрого старта — это пошаговое руководство с пользовательскими задачами. В OKD console доступ к быстрому старту доступен в меню «Help». Сценарии быстрого старта особенно полезны для ориентации в приложении, операторе или другом продукте.

Определение быстрого старта#

Быстрый старт в основном состоит из задач и шагов. Каждая задача состоит из нескольких шагов, а каждое быстрое начало состоит из нескольких задач. Например:

  • Задача 1;

    • Шаг 1;

    • Шаг 2;

    • Шаг 3;

  • Задача 2;

    • Шаг 1;

    • Шаг 2;

    • Шаг 3;

  • Задача 3;

    • Шаг 1;

    • Шаг 2;

    • Шаг 3.

Быстрый старт пользовательского рабочего процесса#

При взаимодействии с существующим кратким руководством по началу работы, ожидаемый рабочий процесс выглядит следующим образом:

  1. В роли Administrator или Developer нажмите значок Help icon и выберите Quick Starts.

  2. Нажмите на карточку быстрого старта.

  3. В появившейся панели нажмите Start.

  4. Выполните инструкции на экране, затем нажмите Next.

  5. В появившемся модуле Check your work ответьте на вопрос, чтобы подтвердить, что задача успешно выполнена:

    • Нажмите Yes и Next, чтобы перейти к следующей задаче;

    • При выборе No повторите инструкции по задаче и еще раз проверьте свою работу.

  6. Повторите шаги с 1 по 6, описанные выше, чтобы выполнить оставшиеся задачи быстрого старта.

  7. После выполнения финальной задачи нажмите Close, чтобы закрыть быстрый старт.

Компоненты быстрого старта#

Быстрый старт состоит из следующих разделов:

  • Card : вкладка каталога, содержащая основную информацию о быстром старте, включая заголовок, описание, временные рамки и статус завершения;

  • Introdaction : краткий обзор цели и задач быстрого старта;

  • Task headings : заголовки с гиперссылками для каждой задачи в быстром старте;

  • Check your work module : модуль, позволяющий пользователю подтвердить, что он успешно выполнил задачу, прежде чем переходить к следующей задаче в быстром старте;

  • Hints : анимация, помогающая пользователям идентифицировать определенные области продукта;

  • Buttons:

    • Кнопки Next и Back: кнопки для навигации по шагам и модулям каждой задачи быстрого старта;

    • Final screen buttons: кнопки для закрытия быстрого старта, возврата к предыдущим задачам в рамках быстрого старта и просмотра всех быстрых стартов.

Основная область содержимого быстрого старта включает в себя следующие разделы:

  • Card copy (копия вкладки каталога);

  • Introduction (введение);

  • Task steps (шаги задачи);

  • Modals and in-app messaging (Модульные окна и обмен сообщениями);

  • Check your work module (Проверка рабочего модуля).

Содействие быстрому старту#

OKD console представляет пользовательский ресурс для быстрого старта, который определяется объектом ConsoleQuickStart. Операторы и администраторы могут использовать этот ресурс для быстрого старта кластера.

Предварительные условия

Получены права администратора кластера.

Процедура

  1. Чтобы создать новый быстрый старт, запустите:


$ kubectl get -o yaml consolequickstart spring-with-s2i > my-quick-start.yaml

  1. Создайте файл:


$ kubectl create -f my-quick-start.yaml

  1. Обновите файл YAML, используя рекомендации, изложенные в этой документации.

  2. Сохраните изменения.

Просмотр документации API быстрого старта#

Процедура

Чтобы просмотреть документацию по API быстрого старта, запустите:


$ kubectl explain consolequickstarts

Запустите kubectl explain -h для получения дополнительной информации об использовании cubectl explain.

Отключение OKD console#

Сценарий позволяет отключить OKD console.

Предварительные условия

Разверните кластер DropApp.

Отключите OKD console отредактировав consoles.operator.io ресурс:


cubectl edit consoles.operator.io cluster

В следующем примере показаны параметры этого ресурса, которые необходимо изменить:


apiVersion: operator.io/v1
kind: Console
metadata:
  name: cluster
spec:
  managementState: Removed 

Установите значение параметра managementState в Removed, чтобы отключить веб-консоль. Другими допустимыми значениями для этого параметра являются Managed, что позволяет консоли управлять кластером, и Unmanaged, что означает, что оператор вручную управляет OKD console.