File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/k8s.cpython-310.pyc
o
�N�gib � @ sz d Z ddlZddlZddlZddlZddlZddlZddl m
mZ ddlZdZ
e�e�Zdd� ZdFdd�Zdd � Zd
d� Zdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� ZdGdd�ZdGdd�ZdGd d!�ZdGd"d#�Z dHd%d&�Z!d'd(� Z"dFd)d*�Z#dId+d,�Z$d-d.� Z%d/d0� Z&d1d2� Z'd3d4� Z(d5d6� Z)d7d8� Z*dJd:d;�Z+d<d=� Z, ?dKd@dA�Z- 9 9 ?dLdBdC�Z.dMdDdE�Z/dS )Na
Salt module to manage Kubernetes cluster
.. versionadded:: 2016.3.0
Roadmap:
* Add creation of K8S objects (pod, rc, service, ...)
* Add replace of K8S objects (pod, rc, service, ...)
* Add deletion of K8S objects (pod, rc, service, ...)
* Add rolling update
* Add (auto)scalling
� NZk8sc C s t S )z*Load load if python-requests is installed.)�__virtualname__� r r �D/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/k8s.py�__virtual__ s r c C s� d}| dur| S dt jv rt j�d�} nUtd d�r!td d�} nHt j�|�s.td dd�rgtd d|�}t�dtj�}t j
j�|��}|�
� D ]}|�|�}qH|rW|�d �} W d � n1 saw Y nd
} t�d| � | S )z^Try to guees the kubemaster url from environ,
then from `/etc/kubernetes/config` file
z/etc/kubernetes/configNZKUBERNETES_MASTERz
config.getz
k8s:masterz
k8s:config� z!KUBE_MASTER=['"]--master=(.*)['"]� zhttp://127.0.0.1:8080z$Discoverd k8s API server address: %s)�os�environ�get�__salt__�path�exists�re�compile� MULTILINE�salt�utils�files�fopen� readlines�match�group�log�debug)�
apiserver_urlZdefault_configZconfigZ
kubeapi_regexZfh_k8s�lineZ
match_liner r r �_guess_apiserver% s.
�
���r c C sT ddi}t �d| |� tj| d|tjj�|�d�}|�d�r |S tjj� |�d��S )z,create any object in kubernetes based on URL�Content-Type�application/jsonzurl is: %s, data is: %s�POST��methodZheader_dict�data�error�body)
r �trace�http�queryr r �json�dumpsr
�loads��urlr"