File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/kubernetesmod.cpython-310.pyc
Back
o ;j� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl mZ ddlZ ddlZ ddlZ ddlZ ddlmZmZ z8ddlZddlZddlmZ ddlmZ zddlmZ ddlmZ W n eyt dd lmZmZ Y nw d ZW n ey� dZY nw e� e!�Z"dZ#d d� Z$e j%j&�'� s�edd� �Z(dZ)dd� Z*dd� Z+dd� Z,dd� Z-dd� Z.dd� Z/dd� Z0d d!� Z1d"d#� Z2d$d%� Z3d&d'� Z4dnd)d*�Z5dnd+d,�Z6dnd-d.�Z7dnd/d0�Z8dnd1d2�Z9dnd3d4�Z:dnd5d6�Z;dnd7d8�Z<d9d:� Z=dod;d<�Z>dnd=d>�Z?dnd?d@�Z@dndAdB�ZAdndCdD�ZBdEdF� ZCdndGdH�ZDdndIdJ�ZEdKdL� ZFdMdN� ZGdOdP� ZH ( QdpdRdS�ZI QdqdTdU�ZJdVdW� ZK (dndXdY�ZL (dndZd[�ZM Q (drd\d]�ZN Q (drd^d_�ZOd`da� ZPdbdc� ZQddde� ZRdfdg� ZSdhdi� ZTdjdk� ZUdldm� ZVdS )sai Module for handling kubernetes calls. :optdepends: - kubernetes Python client < 4.0 - PyYAML < 6.0 :configuration: The k8s API settings are provided either in a pillar, in the minion's config file, or in master's config file:: kubernetes.kubeconfig: '/path/to/kubeconfig' kubernetes.kubeconfig-data: '<base64 encoded kubeconfig content' kubernetes.context: 'context' These settings can be overridden by adding `context and `kubeconfig` or `kubeconfig_data` parameters when calling a function. The data format for `kubernetes.kubeconfig-data` value is the content of `kubeconfig` base64 encoded in one line. Only `kubeconfig` or `kubeconfig-data` should be provided. In case both are provided `kubeconfig` entry is preferred. CLI Example: .. code-block:: bash salt '*' kubernetes.nodes kubeconfig=/etc/salt/k8s/kubeconfig context=minikube .. versionadded:: 2017.7.0 .. versionchanged:: 2019.2.0 .. warning:: Configuration options changed in 2019.2.0. The following configuration options have been removed: - kubernetes.user - kubernetes.password - kubernetes.api_url - kubernetes.certificate-authority-data/file - kubernetes.client-certificate-data/file - kubernetes.client-key-data/file Please use now: - kubernetes.kubeconfig or kubernetes.kubeconfig-data - kubernetes.context � N)�contextmanager)�CommandExecutionError�TimeoutError)�ApiException)� HTTPError)�V1beta1Deployment)�V1beta1DeploymentSpec)�AppsV1beta1Deployment�AppsV1beta1DeploymentSpecTF� kubernetesc C s t rtS dS )z Check dependencies )Fz#python kubernetes library not found)�HAS_LIBS�__virtualname__� r r �N/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kubernetesmod.py�__virtual__[ s r c c sF � dd� }t � t j|� t �| � zd V W t �d� d S t �d� w )Nc S s t �)N)r )�signum�framer r r �signal_handleri s z#_time_limit.<locals>.signal_handlerr )�signal�SIGALRM�alarm)�secondsr r r r �_time_limitg s � r � c K s| t d dd�}t d d�}t d d�}t d d�}t d d�}t d d�}t d d �}t d d �}t d d�} d| v r@| �d�}d | v rI| �d �}d| v rR| �d�}d| v r[| �d�}d| v rd| �d�}d| v rm| �d�} tjjj|ks�tjjj|ks�tjjj|kr�tjj�� |tjj_|tjj_|tjj_ |r�|tjj_ n-|r�tjddd��} | � t�|�� | jtjj_ W d � n1 s�w Y ndtjj_ |r�|tjj_n-|r�tjddd��}|� t�|�� |jtjj_W d � n1 s�w Y ndtjj_| �r| tjj_i S |�r7tjddd��}|� t�|�� |jtjj_W d � i S 1 �s0w Y i S dtjj_i S )z? Setup kubernetes API connection singleton the old way � config.option�kubernetes.api_urlzhttp://localhost:8080zkubernetes.userzkubernetes.passwordz%kubernetes.certificate-authority-dataz"kubernetes.client-certificate-datazkubernetes.client-key-dataz%kubernetes.certificate-authority-filez"kubernetes.client-certificate-filezkubernetes.client-key-file�api_urlZapi_userZapi_passwordZapi_certificate_authority_fileZapi_client_certificate_fileZapi_client_key_file� salt-kube-F��prefix�deleteN)�__salt__�getr �client� configuration�host�user�password�__init__�passwd�ssl_ca_cert�tempfile�NamedTemporaryFile�write�base64� b64decode�name� cert_file�key_file) �kwargsr% �usernamer'