Spec-Zone.ru › Ansible 2.11

kubernetes.core.k8s_service – Управление сервисами в Kubernetes

Примечание

Этот плагин входит в коллекцию kubernetes.core (версия 1.1.1).

Для его установки используйте: ansible-galaxy collection install kubernetes.core.

Для использования в плейбуке укажите: kubernetes.core.k8s_service.

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

Описание

  • Используйте Openshift Python SDK для управления сервисами в Kubernetes.

Примечание

У этого модуля есть соответствующий плагин действий.

Требования

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

  • python >= 2.7
  • openshift >= 0.6.2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_key
строка
Токен, используемый для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_API_KEY.
apply
логическое
    Варианты:
  • no
  • yes
apply сравнивает желаемое определение ресурса с ранее предоставленным определением ресурса, игнорируя свойства, которые автоматически генерируются
apply работает лучше с сервисами, чем 'force=yes'
взаимоисключающее с merge_type
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с API. Для предотвращения ошибок валидации сертификата необходимо предоставить полную цепочку сертификатов. Также может быть задан через переменную окружения K8S_AUTH_SSL_CA_CERT.

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

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

псевдонимы: key_file
context
строка
Имя контекста, найденного в файле конфигурации. Также может быть задан через переменную окружения K8S_AUTH_CONTEXT.
force
логическое
    Варианты:
  • no ←
  • yes
Если установлено yes, и state равно present, существующий объект будет заменен.
host
строка
Укажите URL для доступа к API. Также может быть задан через переменную окружения K8S_AUTH_HOST.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не предоставлен и не заданы другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть задан через переменную окружения K8S_AUTH_KUBECONFIG.
merge_type
список / элементы=строка
    Варианты:
  • json
  • merge
  • strategic-merge
Способ переопределения по умолчанию подхода слияния патчей. По умолчанию обычно используется стратегическое слияние.
Например, определения пользовательских ресурсов обычно не обновляются стандартным стратегическим слиянием. Вы можете использовать merge, если видите сообщение "формат патча стратегического слияния не поддерживается"
См. https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment
Требуется openshift >= 0.6.2
Если задано более одного merge_type, merge_types будут проверены в указанном порядке
Если openshift >= 0.6.2, значение по умолчанию ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для типов ресурсов, которые объединяют пользовательские ресурсы и встроенные ресурсы. Для openshift < 0.6.2 значение по умолчанию просто strategic-merge.
name
строка / обязательно
Используется для указания имени объекта Service.
namespace
строка / обязательно
Используется для указания пространства имен объекта Service.
password
строка
Введите пароль для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_PASSWORD.
Обратитесь к описанию параметра username для обсуждения случаев применения этого параметра.
persist_config
логическое
    Варианты:
  • no
  • yes
Сохранять ли токены обновления конфигурации 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
ports
список / элементы=словарь
Список портов для экспонирования.
https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
proxy
строка
URL HTTP-прокси, который нужно использовать для подключения. Также может быть задан через переменную окружения K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не получает типичные настройки прокси из среды (например, HTTP_PROXY).
resource_definition
строка
Укажите допустимое определение YAML (как строка, список или словарь) для объекта при создании или обновлении.
ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, найденными в предоставленном resource_definition.

псевдонимы: definition, inline
selector
словарь
Селекторы меток идентифицируют объекты, к которым должен применяться этот сервис.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
src
путь
Укажите путь к файлу, содержащему допустимое определение YAML объекта или объектов, которые нужно создать или обновить. Взаимоисключительно с resource_definition. ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, найденными в конфигурации, считанной из файла src.
Считывает данные из локальной файловой системы. Для считывания данных из файловой системы контроллера Ansible, включая зашифрованные файлы, используйте плагин поиска файлов или плагин поиска шаблонов в сочетании с фильтром from_yaml и передайте результат в resource_definition. Смотрите Примеры ниже.
Взаимоисключительно с template в случае модуля k8s.
state
строка
    Варианты:
  • absent
  • present ←
Определяет, должен ли объект быть создан, изменён или удалён. При установке в значение present, объект будет создан, если он еще не существует. При установке в значение absent, существующий объект будет удалён. При установке в значение present, существующий объект будет изменён, если его атрибуты отличаются от указанных с помощью resource_definition или src.
type
строка
    Варианты:
  • NodePort
  • ClusterIP
  • LoadBalancer
  • ExternalName
Определяет тип Service, который нужно создать.
См. https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
username
строка
Введите имя пользователя для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными для использования HTTP Basic Auth. Если ваш кластер использует другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует обратиться к модулю k8s_auth, так как он может выполнять необходимые действия.
validate_certs
логическое
    Варианты:
  • no
  • yes
Включает или отключает проверку SSL-сертификатов сервера API. Также может быть задан через переменную окружения K8S_AUTH_VERIFY_SSL.

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

Примечания

Примечание

  • Клиент OpenShift Python использует клиент K8s Python, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Подробную информацию о версиях API и дополнительную информацию можно найти на сайте https://github.com/openshift/openshift-restclient-python
  • Для предотвращения ошибок проверки сертификатов SSL, когда validate_certs равно True, необходимо предоставить полный цепочку сертификатов для сервера API через ca_cert или в файле kubeconfig.

Примеры

- name: Expose https port with ClusterIP
  kubernetes.core.k8s_service:
    state: present
    name: test-https
    namespace: default
    ports:
    - port: 443
      protocol: TCP
    selector:
      key: special

- name: Expose https port with ClusterIP using spec
  kubernetes.core.k8s_service:
    state: present
    name: test-https
    namespace: default
    inline:
      spec:
        ports:
        - port: 443
          protocol: TCP
        selector:
          key: special

Значения возврата

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

Ключ Возвращаемое значение Описание
result
complex
успех
Созданный, изменённый или иначе существующий объект Service. Будет пустым в случае удаления.

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

kind
строка
успех
Всегда 'Service'.

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

spec
complex
успех
Конкретные атрибуты объекта. Будут варьироваться в зависимости от api_version и kind.

status
complex
успех
Текущие детали статуса объекта.



Авторы

  • Команда KubeVirt (@kubevirt)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/kubernetes/core/k8s_service_module.html

Spec-Zone.ru

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