Nota

Este complemento es parte del colección kubernetes.core (versión 1.1.1).

Para instalarlo use: ansible-galaxy collection install kubernetes.core.

Para usarlo en un libro de jugadas, especifique: kubernetes.core.k8s_info.

  • Sinopsis
  • Requisitos
  • Parámetros
  • Notas
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Utilice el cliente OpenShift Python para realizar operaciones de lectura en objetos K8s.
  • Acceso a la gama completa de API de K8.
  • Autentíquese mediante un archivo de configuración, certificados, contraseña o token.
  • Admite el modo de verificación.
  • Este módulo se llamó k8s_facts antes de Ansible 2.9. El uso no cambió.

Nota

Este módulo tiene un correspondiente complemento de acción.

Requisitos

Los siguientes requisitos son necesarios en el host que ejecuta este módulo.

  • pitón> = 2.7
  • desplazamiento abierto> = 0,6
  • PyYAML> = 3,11

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
Clave APIcuerda Token utilizado para autenticarse con la API. También se puede especificar mediante la variable de entorno K8S_AUTH_API_KEY.
api_versioncuerda Defecto:
“v1”
Úselo para especificar la versión de API. Úselo para crear, eliminar o descubrir un objeto sin proporcionar una definición de recurso completa. Úselo junto con amable, nombre, y espacio de nombres para identificar un objeto específico. definición de recurso se proporciona, el apiVersion valor de la resource_definition anulará esta opción.
alias: api, versión
ca_certsendero Ruta a un certificado de CA utilizado para autenticarse con la API. Se debe proporcionar la cadena de certificados completa para evitar errores de validación de certificados. También se puede especificar mediante la variable de entorno K8S_AUTH_SSL_CA_CERT.
alias: ssl_ca_cert
client_certsendero Ruta a un certificado utilizado para autenticarse con la API. También se puede especificar mediante la variable de entorno K8S_AUTH_CERT_FILE.
alias: cert_file
clave_clientesendero Ruta a un archivo de clave utilizado para autenticarse con la API. También se puede especificar mediante la variable de entorno K8S_AUTH_KEY_FILE.
alias: key_file
contextocuerda El nombre de un contexto que se encuentra en el archivo de configuración. También se puede especificar mediante la variable de entorno K8S_AUTH_CONTEXT.
field_selectorslista / elementos = cadena Lista de selectores de campo que se utilizarán para filtrar los resultados
anfitrióncuerda Proporcione una URL para acceder a la API. También se puede especificar mediante la variable de entorno K8S_AUTH_HOST.
amablecuerda / requerido Úselo para especificar un modelo de objeto. Úselo para crear, eliminar o descubrir un objeto sin proporcionar una definición de recurso completa. Úselo junto con api_version, nombre, y espacio de nombres para identificar un objeto específico. definición de recurso se proporciona, el amable valor de la resource_definition anulará esta opción.
kubeconfigsendero Ruta a un archivo de configuración de Kubernetes existente. Si no se proporciona, y no se proporcionan otras opciones de conexión, el cliente openshift intentará cargar el archivo de configuración predeterminado desde ~ / .kube / config.json. También se puede especificar mediante la variable de entorno K8S_AUTH_KUBECONFIG.
label_selectorslista / elementos = cadena Lista de selectores de etiquetas que se utilizarán para filtrar los resultados
nombrecuerda Úselo para especificar un nombre de objeto. Úselo para crear, eliminar o descubrir un objeto sin proporcionar una definición de recurso completa. Úselo junto con api_version, amable y espacio de nombres para identificar un objeto específico. definición de recurso se proporciona, el metadata.name valor de la resource_definition anulará esta opción.
espacio de nombrescuerda Úselo para especificar un espacio de nombres de objeto. Útil al crear, eliminar o descubrir un objeto sin proporcionar una definición de recurso completa. api_version, amable, y nombre para identificar un objeto específico. definición de recurso se proporciona, el metadata.namespace valor de la resource_definition anulará esta opción.
contraseñacuerda Proporcione una contraseña para autenticarse con la API. También se puede especificar a través de la variable de entorno K8S_AUTH_PASSWORD. Lea la descripción de la username opción para una discusión de cuándo esta opción es aplicable.
persist_configbooleano
    Opciones:

  • no
Si guardar o no los tokens de actualización de configuración de kube. También se puede especificar a través de la variable de entorno K8S_AUTH_PERSIST_CONFIG. Cuando el contexto k8s usa credenciales de usuario con tokens de actualización (como oidc o gke / gcloud auth), la biblioteca cliente de python k8s actualiza el token, pero no se guarda de manera predeterminada. Por lo tanto, el token de actualización anterior puede caducar y la siguiente autenticación puede fallar. Establecer este indicador en verdadero le dirá al cliente de k8s python que guarde el nuevo token de actualización en el archivo de configuración de kube. Por defecto es falso. Tenga en cuenta que la versión actual de la biblioteca cliente de k8s python no admite la configuración de este indicador en Verdadero todavía. La solución para esta biblioteca de Python k8s está aquí: https://github.com/kubernetes-client/python-base/pull/169
apoderadocuerda La URL de un proxy HTTP que se utilizará para la conexión. También se puede especificar a través de la variable de entorno K8S_AUTH_PROXY. Tenga en cuenta que este módulo no recoge la configuración de proxy típica del entorno (por ejemplo, HTTP_PROXY).
nombre de usuariocuerda Proporcione un nombre de usuario para autenticarse con la API. También se puede especificar a través de la variable de entorno K8S_AUTH_USERNAME. Tenga en cuenta que esto solo funciona con clústeres configurados para usar HTTP Basic Auth. Si su clúster tiene una forma diferente de autenticación (por ejemplo, OAuth2 en OpenShift), esta opción no funcionará como se esperaba y debe buscar en la k8s_auth módulo, ya que podría hacer lo que necesita.
validate_certsbooleano
    Opciones:

  • no
Si verificar o no los certificados SSL del servidor API. También se puede especificar mediante la variable de entorno K8S_AUTH_VERIFY_SSL.
alias: verify_ssl
Esperebooleano
    Opciones:

  • no
Ya sea para esperar a que ciertos tipos de recursos terminen en el estado deseado. De forma predeterminada, el módulo sale una vez que Kubernetes ha recibido la solicitud. state=present por Deployment, DaemonSet y Pod, y para state=absent para todo tipo de recursos. Para los tipos de recursos sin una implementación, wait regresa inmediatamente a menos que wait_condition Está establecido.
condición_de_esperadiccionario Especifica una condición personalizada sobre el estado a esperar. wait no está establecido o está establecido en False.
razóncuerda El valor del campo de motivo en su condición deseada Por ejemplo, si un Deployment está en pausa, el Progressingtype tendrá el DeploymentPaused Las posibles razones de una condición son específicas de cada tipo de recurso en Kubernetes. Consulte la documentación de la API del campo de estado de un recurso determinado para ver las posibles opciones.
estadocuerda
    Opciones:

  • Cierto
  • Falso
  • Desconocido
El valor del campo de estado en la condición deseada. Por ejemplo, si un Deployment está en pausa, el Progressingtype tendrá el Unknown estado.
escribecuerda El tipo de condición por la que esperar. Por ejemplo, el Pod recurso establecerá el Ready condición (entre otras). Requerido si está especificando una wait_condition.Si se deja vacío, el wait_condition Los tipos posibles de una condición son específicos de cada tipo de recurso en Kubernetes. Consulte la documentación de la API del campo de estado de un recurso determinado para ver las posibles opciones.
esperar_dormirentero Defecto:
5
Número de segundos para dormir entre controles.
wait_timeoutentero Defecto:
120
Cuánto tiempo en segundos esperar a que el recurso termine en el estado deseado. wait no está configurado.

Notas

Nota

  • El cliente OpenShift Python envuelve el cliente Python de K8s, proporcionando acceso completo a todos los APIS y modelos disponibles en ambas plataformas. Para obtener detalles de la versión de API e información adicional, visite https://github.com/openshift/openshift-restclient-python
  • Para evitar errores de validación del certificado SSL cuando validate_certs es Cierto, la cadena de certificados completa para el servidor API debe proporcionarse a través de ca_cert o en el archivo kubeconfig.

Ejemplos de

-name: Get an existing Service object
  kubernetes.core.k8s_info:api_version: v1
    kind: Service
    name: web
    namespace: testing
  register: web_service

-name: Get a list of all service objects
  kubernetes.core.k8s_info:api_version: v1
    kind: Service
    namespace: testing
  register: service_list

-name: Get a list of all pods from any namespace
  kubernetes.core.k8s_info:kind: Pod
  register: pod_list

-name: Search for all Pods labelled app=web
  kubernetes.core.k8s_info:kind: Pod
    label_selectors:- app = web
      - tier in (dev, test)

-name: Using vars while using label_selectors
  kubernetes.core.k8s_info:kind: Pod
    label_selectors:-"app =  app_label_web "vars:app_label_web: web

-name: Search for all running pods
  kubernetes.core.k8s_info:kind: Pod
    field_selectors:- status.phase=Running

-name: List custom objects created using CRD
  kubernetes.core.k8s_info:kind: MyCustomObject
    api_version:"stable.example.com/v1"-name: Wait till the Object is created
  kubernetes.core.k8s_info:kind: Pod
    wait: yes
    name: pod-not-yet-created
    namespace: default
    wait_sleep:10wait_timeout:360

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
recursoscomplejo éxito El objeto (s) que existe
api_versioncuerda éxito El esquema versionado de esta representación de un objeto.
amablecuerda éxito Representa el recurso REST que representa este objeto.
metadatosdiccionario éxito Metadatos de objeto estándar. Incluye nombre, espacio de nombres, anotaciones, etiquetas, etc.
Especificacionesdiccionario éxito Atributos específicos del objeto. Variará según el api_version y amable.
estadodiccionario éxito Detalles del estado actual del objeto.

Autores

  • Will Thames (@willthames)