Spec-Zone.ru › Ansible

Модуль community.okd.openshift_route – Опубликовать сервис как OpenShift маршрут.

Примечание

Этот модуль входит в коллекцию community.okd (версия 3.0.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.okd. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробной информации.

Для использования в плейбуке укажите: community.okd.openshift_route.

Добавлена в community.okd 0.3.0

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Описание

  • Ищет сервис и создаёт новый маршрут, основанный на нём.
  • Аналогичен `oc expose` и `oc create route` для создания маршрутов, но не поддерживает создание сервисов.
  • Для создания сервисов из других ресурсов см. kubernetes.core.k8s.

Требования

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

  • python >= 3.6
  • kubernetes >= 12.0.0
  • PyYAML >= 3.11

Параметры

Параметр

Комментарии

annotations

словарь

добавлен в community.okd 2.1.0

Укажите аннотации маршрута.

Набор пар «ключ: значение».

api_key

строка

Токен, используемый для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_API_KEY.

ca_cert

псевдонимы: ssl_ca_cert

путь

Путь к сертификату CA, используемому для аутентификации с API. Для избежания ошибок валидации сертификата необходимо указать весь цепочку сертификатов. Также можно указать через переменную среды K8S_AUTH_SSL_CA_CERT.

client_cert

псевдонимы: cert_file

путь

Путь к сертификату, используемому для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_CERT_FILE.

client_key

псевдонимы: key_file

путь

Путь к файлу ключа, используемому для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_KEY_FILE.

context

строка

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

force

логический тип

Если установлено в yes, и state равно present, существующий объект будет заменён.

Варианты:

  • false ← (по умолчанию)
  • true

host

строка

Укажите URL для доступа к API. Также можно указать через переменную среды K8S_AUTH_HOST.

hostname

строка

Имя хоста для маршрута.

impersonate_groups

список / элементы=строка

добавлен в kubernetes.core 2.3.0

Группа(ы) для имитации при операции.

Также можно указать через переменную среды K8S_AUTH_IMPERSONATE_GROUPS. Пример: Group1,Group2

impersonate_user

строка

добавлен в kubernetes.core 2.3.0

Имя пользователя для имитации при операции.

Также можно указать через переменную среды K8S_AUTH_IMPERSONATE_USER.

kubeconfig

любой

Путь к существующему файлу конфигурации Kubernetes. Если не указан и другие параметры подключения отсутствуют, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config. Также можно указать через переменную среды K8S_AUTH_KUBECONFIG.

Несколько файлов конфигурации Kubernetes могут быть указаны, используя разделитель ‘;’ для платформ Windows или ‘:’ для других платформ.

Конфигурация Kubernetes может быть предоставлена в виде словаря. Эта функция требует версию клиента python kubernetes >= 17.17.0. Добавлена в версии 2.2.0.

labels

словарь

Укажите метки для применения к созданному маршруту.

Набор пар «ключ: значение».

name

строка

Желаемое имя создаваемого маршрута.

По умолчанию принимает значение service

namespace

строка / обязательно

Пространство имён целевого ресурса.

Маршрут также будет создан в этом пространстве имён.

no_proxy

строка

добавлен в kubernetes.core 2.3.0

Список хостов/доменов/IP/CIDR, разделённых запятыми, которые не должны проходить через прокси. Также можно указать через переменную среды K8S_AUTH_NO_PROXY.

Обратите внимание, что этот модуль не получает типичные настройки прокси из среды (например, NO_PROXY).

Эта функция требует kubernetes>=19.15.0. Если библиотека kubernetes меньше 19.15.0, происходит ошибка, даже если no_proxy задан правильно.

Пример значения: “localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16”

password

строка

Укажите пароль для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_PASSWORD.

Пожалуйста, прочитайте описание параметра username для понимания, когда этот параметр применимо.

path

строка

Путь для маршрута.

persist_config

boolean

Сохранять ли токен обновления конфигурации kube. Также может быть задано через переменную среды K8S_AUTH_PERSIST_CONFIG.

Когда контекст k8s использует учетные данные пользователя с токенами обновления (например, oidc или gke/gcloud auth), токен обновляется библиотекой k8s python, но по умолчанию не сохраняется. В результате старый токен обновления может истечь, и следующая авторизация может завершиться ошибкой. Установка этого флага в значение true укажет библиотеке k8s python сохранить новый токен обновления в файл конфигурации kube.

По умолчанию false.

Обратите внимание, что текущая версия библиотеки k8s python пока не поддерживает установку этого флага в значение True.

Исправление для этой библиотеки k8s python находится здесь: https://github.com/kubernetes-client/python-base/pull/169

Варианты:

  • false
  • true

port

string

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

proxy

string

URL HTTP-прокси, который следует использовать для подключения. Также может быть задан через переменную среды K8S_AUTH_PROXY.

Обратите внимание, что этот модуль не использует типичные настройки прокси из окружения (например, HTTP_PROXY).

proxy_headers

dictionary

добавлен в kubernetes.core 2.0.0

Заголовок, используемый для HTTP-прокси.

Документацию можно найти здесь https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

Разделенное двоеточием имя пользователя:пароль для заголовка базовой аутентификации.

Также может быть задано через переменную среды K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

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

Также может быть задано через переменную среды K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка, представляющая желаемого пользователя-агента, например, foo/1.0.

Также может быть задано через переменную среды K8S_AUTH_PROXY_HEADERS_USER_AGENT.

service

aliases: svc

string

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

Требуется, когда state не absent.

state

string

Определяет, должен ли объект быть создан, изменен или удален. При установке в present, объект будет создан, если он еще не существует. При установке в absent, существующий объект будет удален. При установке в present, существующий объект будет изменен, если его атрибуты отличаются от указанных с помощью resource_definition или src.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

termination

string

Тип завершения Route.

Если поле оставлено пустым, тип завершения не будет установлен, и маршрут будет небезопасным.

При установке в insecure tls будет проигнорирован.

Варианты:

  • "edge"
  • "passthrough"
  • "reencrypt"
  • "insecure" ← (по умолчанию)

tls

dictionary

Настройка TLS для вновь созданного маршрута.

Используется только при установке termination.

ca_certificate

string

Путь к файлу сертификата CA на целевом хосте.

Не поддерживается, когда termination установлен в passthrough.

certificate

string

Путь к файлу сертификата на целевом хосте.

Не поддерживается, когда termination установлен в passthrough.

destination_ca_certificate

string

Путь к файлу сертификата CA, используемому для обеспечения соединения.

Используется только при установке termination в reencrypt.

По умолчанию используется CA службы.

insecure_policy

string

Устанавливает InsecureEdgeTerminationPolicy для Route.

Не поддерживается, когда termination установлен в reencrypt.

Когда termination установлен в passthrough, поддерживается только redirect.

Если не указано, небезопасный трафик будет запрещен.

Варианты:

  • "allow"
  • "redirect"
  • "disallow" ← (по умолчанию)

key

string

Путь к файлу ключа на целевом хосте.

Не поддерживается, когда termination установлен в passthrough.

username

string

Укажите имя пользователя для аутентификации с API. Также может быть задано через переменную среды K8S_AUTH_USERNAME.

Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если ваш кластер имеет другой вид аутентификации (например, OAuth2 в OpenShift), эта опция не будет работать должным образом, и вы должны обратиться к модулю community.okd.k8s_auth, так как он может решить вашу задачу.

validate_certs

aliases: verify_ssl

boolean

Проверка SSL-сертификатов API-сервера. Также может быть указана через переменную окружения K8S_AUTH_VERIFY_SSL.

Выборы:

  • false
  • true

wait

boolean

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

По умолчанию модуль завершает работу после получения запроса Kubernetes.

Реализовано для state=present для Deployment, DaemonSet и Pod, и для state=absent для всех типов ресурсов.

Для типов ресурсов без реализации wait возвращается немедленно, если wait_condition не задано.

Выборы:

  • false ← (по умолчанию)
  • true

wait_condition

dictionary

Указывает пользовательское условие для ожидания состояния.

Игнорируется, если wait не задано или равно False.

reason

string

Значение поля reason в вашем желаемом условии.

Например, если Deployment приостановлен, у Progressing type будет причина DeploymentPaused.

Возможные причины в условии специфичны для каждого типа ресурса в Kubernetes.

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

status

string

Значение поля status в вашем желаемом условии.

Например, если Deployment приостановлен, у Progressing type будет статус Unknown.

Выборы:

  • "True" ← (по умолчанию)
  • "False"
  • "Unknown"

type

string

Тип условия, для которого нужно ждать.

Например, ресурс Pod установит условие Ready (среди прочих).

Требуется, если вы указываете условие wait_condition.

Если оставлено пустым, поле wait_condition будет проигнорировано.

Возможные типы условий специфичны для каждого типа ресурса в Kubernetes.

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

wait_sleep

integer

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

По умолчанию: 5

wait_timeout

integer

Время ожидания в секундах, пока ресурс достигнет желаемого состояния.

Игнорируется, если wait не задано.

По умолчанию: 120

wildcard_policy

string

Политика подстановки для имени хоста.

В настоящее время поддерживается только Subdomain.

Если не указано, используется значение по умолчанию None.

Выборы:

  • "Subdomain"

Примечания

Примечание

  • Для предотвращения ошибок проверки SSL-сертификатов, когда validate_certs равно True, полная цепочка сертификатов API-сервера должна быть предоставлена через ca_cert или в файле kubeconfig.

Примеры

- name: Create hello-world deployment
  community.okd.k8s:
    definition:
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: hello-kubernetes
        namespace: default
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: hello-kubernetes
        template:
          metadata:
            labels:
              app: hello-kubernetes
          spec:
            containers:
              - name: hello-kubernetes
                image: paulbouwer/hello-kubernetes:1.8
                ports:
                  - containerPort: 8080

- name: Create Service for the hello-world deployment
  community.okd.k8s:
    definition:
      apiVersion: v1
      kind: Service
      metadata:
        name: hello-kubernetes
        namespace: default
      spec:
        ports:
          - port: 80
            targetPort: 8080
        selector:
          app: hello-kubernetes

- name: Expose the insecure hello-world service externally
  community.okd.openshift_route:
    service: hello-kubernetes
    namespace: default
    insecure_policy: allow
    annotations:
      haproxy.router.openshift.io/balance: roundrobin
  register: route

Возвращаемые значения

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

Ключ

Описание

duration

integer

Затраченное время задачи в секундах

Возвращается: когда wait истинно

Пример: 48

result

complex

Объект Route, который был создан или обновлен. Будет пустым в случае удаления.

Возвращается: успех

apiVersion

string

Версионированная схема этого представления объекта.

Возвращается: успех

kind

string

Представляет REST-ресурс, который представляет этот объект.

Возвращается: успех

metadata

complex

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

Возвращается: успех

name

string

Имя созданного маршрута Route

Возвращается: успех

namespace

string

Пространство имен созданного маршрута Route

Возвращается: успех

spec

complex

Спецификация для маршрута Route

Возвращается: успех

host

string

Host — это псевдоним/DNS, указывающий на сервис.

Возвращается: успех

path

string

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

Возвращается: успех

port

complex

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

Возвращается: успех

targetPort

string

Целевой порт на подкастах, выбранных сервисом, на который указывает этот маршрут.

Возвращается: успех

tls

complex

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

Возвращается: успех

caCertificate

string

Предоставляет содержимое сертификата центра сертификации.

Возвращается: успех

certificate

string

Предоставляет содержимое сертификата.

Возвращается: успех

destinationCACertificate

string

Предоставляет содержимое сертификата CA конечного пункта назначения.

Возвращается: успех

insecureEdgeTerminationPolicy

string

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

Возвращается: успех

key

string

Предоставляет содержимое файла ключа.

Возвращается: успех

termination

string

Указывает тип завершения.

Возвращается: успех

to

complex

Указывает целевой объект, который разрешается в конечные точки.

Возвращается: успех

kind

string

Тип целевого объекта, на который ссылается маршрут. В настоящее время разрешен только «Service».

Возвращается: успех

имя

строка

Имя службы/цели, на которую делается ссылка. Например, имя службы.

Возвращено: успех

вес

целое число

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

Возвращено: успех

wildcardPolicy

строка

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

Возвращено: успех

состояние

сложное

Подробности текущего состояния маршрута.

Возвращено: успех

входные точки

сложное

Список мест, где может быть экспонирован маршрут.

Возвращено: успех

условия

сложное

Массив условий состояния для входных точек маршрута.

Возвращено: успех

состояние

строка

Состояние условия. Может быть True, False, Unknown.

Возвращено: успех

тип

строка

Тип условия. В настоящее время только «Готов».

Возвращено: успех

хост

строка

Строка хоста, под которой экспонирован маршрут.

Возвращено: успех

routerCanonicalHostname

строка

Внешнее имя хоста маршрутизатора, которое можно использовать как CNAME для запрошенного хоста для данного маршрута. Может не быть установлено.

Возвращено: успех

имя маршрутизатора

строка

Имя, выбранное маршрутизатором для идентификации.

Возвращено: успех

wildcardPolicy

строка

Политика подстановочных знаков, разрешённая при экспонировании данного маршрута.

Возвращено: успех

Авторы

  • Fabian von Feilitzsch (@fabianvf)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходные коды)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/okd/openshift_route_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API