Spec-Zone.ru › Ansible

Модуль community.okd.openshift_route — Публикация Service как маршрута OpenShift.

Примечание

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

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

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

Чтобы использовать модуль в плейбуке, укажите: community.okd.openshift_route.

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

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

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

Требования

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

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

Параметры

Параметр

Комментарии

annotations

dictionary

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

Задает аннотации Route.

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

api_key

string

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

ca_cert

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

path

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

client_cert

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

path

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

client_key

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

path

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

context

string

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

force

boolean

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

Варианты:

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

host

string

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

hostname

string

Имя хоста для Route.

impersonate_groups

list / элементы=string

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

Группа или группы, от имени которых выполняется операция.

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

impersonate_user

string

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

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

Также можно задать с помощью переменной окружения K8S_AUTH_IMPERSONATE_USER.

kubeconfig

any

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

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

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

labels

dictionary

Задает метки, применяемые к создаваемому Route.

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

name

string

Имя создаваемого Route.

По умолчанию используется значение service

namespace

string / обязательный

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

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

no_proxy

string

добавлено в 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

string

Пароль для аутентификации в API. Также можно задать с помощью переменной окружения K8S_AUTH_PASSWORD.

Информацию о случаях, когда применим этот параметр, см. в описании параметра username.

path

string

Путь для Route

persist_config

boolean

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

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

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

Обратите внимание: текущая версия клиентской библиотеки Python для k8s пока не поддерживает установку этого флага в True.

Исправление для этой библиотеки k8s доступно здесь: 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

Строка, задающая нужный user-agent, например foo/1.0.

Также можно задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_USER_AGENT.

service

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

string

Имя публикуемого Service.

Обязателен, если значение state не равно absent.

state

string

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

Варианты:

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

termination

string

Тип завершения TLS для 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.

По умолчанию используется Service 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

псевдонимы: 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

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

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

reason

string

Значение поля reason в требуемом условии.

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

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

Возможные варианты см. в документации API для поля status соответствующего ресурса.

status

string

Значение поля status в требуемом условии.

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

Варианты:

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

type

string

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

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

Обязателен, если указан параметр wait_condition.

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

Возможные типы условий зависят от типа ресурса Kubernetes.

Возможные варианты см. в документации API для поля status соответствующего ресурса.

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 равно true

Пример: 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

Задаёт конфигурацию для защиты маршрута и завершения TLS-соединения.

Возвращается: при успешном выполнении

caCertificate

string

Содержимое сертификата центра сертификации.

Возвращается: при успешном выполнении

certificate

string

Содержимое сертификата.

Возвращается: при успешном выполнении

destinationCACertificate

string

Содержимое сертификата центра сертификации конечного узла назначения.

Возвращается: при успешном выполнении

insecureEdgeTerminationPolicy

string

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

Возвращается: при успешном выполнении

key

string

Содержимое файла ключа.

Возвращается: при успешном выполнении

termination

string

Указывает тип завершения TLS-соединения.

Возвращается: при успешном выполнении

to

complex

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

Возвращается: при успешном выполнении

kind

string

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

Возвращается: при успешном выполнении

name

string

Имя сервиса/целевого объекта, на который ссылаются, например имя сервиса.

Возвращается: при успешном выполнении

weight

integer

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

Возвращается: при успешном выполнении

wildcardPolicy

string

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

Возвращается: при успешном выполнении

status

complex

Сведения о текущем состоянии Route

Возвращается: при успешном выполнении

ingress

complex

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

Возвращается: при успешном выполнении

conditions

complex

Массив условий состояния для входящего трафика Route.

Возвращается: при успешном выполнении

status

string

Состояние условия. Возможные значения: True, False, Unknown.

Возвращается: при успешном выполнении

type

string

Тип условия. В настоящее время поддерживается только ‘Ready’.

Возвращается: при успешном выполнении

host

string

Имя хоста, по которому открыт маршрут.

Возвращается: при успешном выполнении

routerCanonicalHostname

string

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

Возвращается: при успешном выполнении

routerName

string

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

Возвращается: при успешном выполнении

wildcardPolicy

string

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

Возвращается: при успешном выполнении

Авторы

  • Fabian von Feilitzsch (@fabianvf)

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

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

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

Spec-Zone.ru

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