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
.
- Sinopsis
- Requisitos
- Parámetros
- Notas
- Ejemplos de
- Valores devueltos
Sinopsis
- Utilice el cliente OpenShift Python para realizar operaciones CRUD en objetos K8s.
- Pase la definición del objeto desde un archivo fuente o en línea. Vea ejemplos para leer archivos y usar plantillas Jinja o archivos cifrados en bóveda.
- Acceso a la gama completa de API de K8.
- Utilizar el kubernetes.core.k8s_info módulo para obtener una lista de elementos sobre un objeto de tipo
kind
- Autentíquese mediante un archivo de configuración, certificados, contraseña o token.
- Admite el modo de verificación.
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 |
|
append_hashbooleano |
|
Si agregar un hash al nombre de un recurso con fines de inmutabilidad Se aplica solo a los recursos ConfigMap y Secret El parámetro se ignorará silenciosamente para otros tipos de recursos La definición completa de un objeto es necesaria para generar el hash; esto significa que eliminar un objeto creado con append_hash solo lo hará. funciona si se pasa el mismo objeto con state = ausente (alternativamente, solo use state = ausente con el nombre que incluye el hash generado y append_hash = no) Requiere openshift> = 0.7.2 | |
solicitarbooleano |
|
apply compara la definición de recurso deseada con la definición de recurso proporcionada anteriormente, ignorando las propiedades que se generan automáticamenteapply funciona mejor con Servicios que ‘force = yes’ Requiere openshift> = 0.9.2 mutuamente exclusivo con merge_type |
|
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. | ||
fuerzabooleano |
|
Si se establece en yes , y estado es present , se reemplazará un objeto existente. |
|
anfitrióncuerda | Proporcione una URL para acceder a la API. También se puede especificar mediante la variable de entorno K8S_AUTH_HOST. | ||
amablecuerda | Ú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. | ||
merge_typelista / elementos = cadena |
|
Si se debe anular el enfoque de combinación de parches predeterminado con un tipo específico. Por defecto, normalmente se utilizará la fusión estratégica. Por ejemplo, las definiciones de recursos personalizadas normalmente no se pueden actualizar mediante la fusión estratégica habitual. Es posible que desee utilizar merge si ve “el formato de parche de combinación estratégica no es compatible”, consulte https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deploymentRequiere openshift> = 0.6.2 Si se proporciona más de un merge_type, los merge_types se probarán en orden Si openshift> = 0.6.2, este valor predeterminado es ['strategic-merge', 'merge'] , que es ideal para usar los mismos parámetros en tipos de recursos que combinan recursos personalizados y recursos integrados. Para openshift <0.6.2, el valor predeterminado es simplemente strategic-merge .mutually exclusivo con apply |
|
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 |
|
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). | ||
resource_definitioncuerda | Proporcione una definición YAML válida (ya sea como una cadena, lista o diccionario) para un objeto al crearlo o actualizarlo. amable, api_version, nombre, y espacio de nombres se sobrescribirán con los valores correspondientes que se encuentran en el resource_definition. alias: definición, en línea |
||
srcsendero | Proporcione una ruta a un archivo que contenga una definición YAML válida de un objeto u objetos que se crearán o actualizarán. Mutuamente excluyente con resource_definition. NOTA: amable, api_version, nombre, y espacio de nombres se sobrescribirán con los valores correspondientes que se encuentran en la configuración leída desde el src archivo. Lee del sistema de archivos local. Para leer desde el sistema de archivos del controlador Ansible, incluidos los archivos almacenados, use el complemento de búsqueda de archivos o el complemento de búsqueda de plantillas, combinado con el filtro from_yaml, y pase el resultado a resource_definition. Consulte los ejemplos a continuación. plantilla en caso de k8s módulo. | ||
estadocuerda |
|
Determina si se debe crear, parchear o eliminar un objeto. Cuando se establece en present , se creará un objeto, si aún no existe. Si se establece en absent , se eliminará un objeto existente. Si se establece en present , se aplicará un parche a un objeto existente, si sus atributos difieren de los especificados mediante resource_definition o src. |
|
plantillacrudo | Proporcione un archivo de definición de plantilla YAML válido para un objeto al crearlo o actualizarlo. El valor se puede proporcionar como una cadena o diccionario. Mutuamente exclusivo con src y resource_definition Los archivos de plantilla deben estar presentes en el sistema de archivos del controlador Ansible. Se pueden especificar parámetros adicionales usando el diccionario. Parámetros adicionales válidos –newline_sequence (str): especifique la secuencia de nueva línea que se utilizará para los archivos de plantillas. las opciones válidas son ” n”, ” r”, ” r n”. Valor predeterminado ” n”.block_start_string (str): la cadena que marca el comienzo de un bloque. Valor por defecto “%”.block_end_string (str): la cadena que marca el final de un bloque. Valor por defecto “%”.variable_start_string (str): la cadena que marca el comienzo de una declaración de impresión. Valor por defecto “”.variable_end_string (str): la cadena que marca el final de una declaración impresa. Valor por defecto “”.trim_blocks (bool): determina cuándo se deben eliminar las nuevas líneas de los bloques. Cuando se establece en yes la primera línea nueva después de eliminar un bloque (¡bloque, no etiqueta variable!). El valor predeterminado es verdadero.lstrip_blocks (bool): determina cuándo se deben eliminar los espacios iniciales y las pestañas. Cuando se establece en yes los espacios iniciales y las tabulaciones se eliminan desde el principio de una línea hasta un bloque. Esta funcionalidad requiere Jinja 2.7 o más reciente. El valor predeterminado es falso. |
||
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. |
||
validardiccionario | cómo (en todo caso) validar la definición de recurso con el esquema de Kubernetes. Requiere el módulo de Python kubernetes-validate y openshift> = 0.8.0 | ||
fail_on_errorbooleano |
|
si fallar en los errores de validación. | |
estrictobooleano |
|
si fallar al pasar propiedades inesperadas | |
versióncuerda | versión de Kubernetes para validar. predeterminado a la versión del servidor de Kubernetes | ||
validate_certsbooleano |
|
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 |
|
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 todos los tipos 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 Progressing type 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 |
|
El valor del campo de estado en la condición deseada. Por ejemplo, si un Deployment está en pausa, el Progressing type 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. |
||
espera_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
- Si su biblioteca OpenShift Python no es 0.9.0 o más reciente y está tratando de eliminar un elemento de una matriz / diccionario asociativo, por ejemplo, una etiqueta o una anotación, deberá establecer explícitamente el valor del elemento que se eliminará.
null
. Simplemente eliminar la entrada en el diccionario no la eliminará de openshift o kubernetes. - 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 deca_cert
o en el archivo kubeconfig.
Ejemplos de
-name: Create a k8s namespace kubernetes.core.k8s:name: testing api_version: v1 kind: Namespace state: present -name: Create a Service object from an inline definition kubernetes.core.k8s:state: present definition:apiVersion: v1 kind: Service metadata:name: web namespace: testing labels:app: galaxy service: web spec:selector:app: galaxy service: web ports:-protocol: TCP targetPort:8000name: port-8000-tcp port:8000-name: Remove an existing Service object kubernetes.core.k8s:state: absent api_version: v1 kind: Service namespace: testing name: web # Passing the object definition from a file-name: Create a Deployment by reading the definition from a local file kubernetes.core.k8s:state: present src: /testing/deployment.yml -name:>- Read definition file from the Ansible controller file system. If the definition file has been encrypted with Ansible Vault it will automatically be decrypted. kubernetes.core.k8s:state: present definition:" from_yaml "-name: Read definition template file from the Ansible controller file system kubernetes.core.k8s:state: present template:'/testing/deployment.j2'-name: Read definition template file from the Ansible controller file system that uses custom start/end strings kubernetes.core.k8s:state: present template:path:'/testing/deployment.j2'variable_start_string:'[['variable_end_string:']]'-name: fail on validation errors kubernetes.core.k8s:state: present definition:" lookup('template', '/testing/deployment.yml') "validate:fail_on_error: yes -name: warn on validation errors, check for unexpected properties kubernetes.core.k8s:state: present definition:" from_yaml "validate:fail_on_error: no strict: yes
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 | |
---|---|---|---|
resultadocomplejo | éxito | El objeto creado, parcheado o presente de otro modo. Estará vacío en el caso de una eliminación. | |
api_versioncuerda | éxito | El esquema versionado de esta representación de un objeto. | |
duraciónentero | cuando wait es verdad |
tiempo transcurrido de la tarea en segundos Muestra:48 |
|
elementoslista / elementos = cadena | cuando resource_definition o src contiene una lista de objetos | Se devuelve solo cuando se pasan varios documentos yaml a src o resource_definition | |
amablecuerda | éxito | Representa el recurso REST que representa este objeto. | |
metadatoscomplejo | éxito | Metadatos de objeto estándar. Incluye nombre, espacio de nombres, anotaciones, etiquetas, etc. | |
Especificacionescomplejo | éxito | Atributos específicos del objeto. Variará según el api_version y amable. | |
estadocomplejo | éxito | Detalles del estado actual del objeto. |
Autores
- Chris Houseknecht (@chouseknecht)
- Fabian von Feilitzsch (@fabianvf)
Aquí tienes las comentarios y valoraciones
Al final de todo puedes encontrar las interpretaciones de otros programadores, tú además tienes la opción de mostrar el tuyo si lo crees conveniente.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)