コード例 #1
0
def update_pod_with_webhook_container(pod, cmk_img, configmap_name,
                                      secret_name):
    container = k8s.get_container_template()
    args = ("/cmk/cmk.py webhook --conf-file /etc/webhook/server.yaml")
    container["args"] = [args]
    container["image"] = cmk_img
    container["name"] = "cmk-webhook"
    container["volumeMounts"].append({
        'mountPath': '/etc/webhook',
        'name': 'configmap'
    })
    container["volumeMounts"].append({
        'mountPath': '/etc/ssl',
        'name': 'certs',
        'readOnly': True
    })
    pod["spec"]["volumes"].append({
        'name': 'configmap',
        'configMap': {
            'name': configmap_name
        }
    })
    pod["spec"]["volumes"].append({
        'name': 'certs',
        'secret': {
            'secretName': secret_name
         }
    })
    pod["spec"]["tolerations"] = [{"operator": "Exists"}]
    pod["spec"]["containers"].append(container)
    pod["spec"].pop("nodeName")
コード例 #2
0
def update_pod_with_init_container(pod, cmd, cmk_img, cmk_img_pol, args):
    container_template = k8s.get_container_template()
    container_template["image"] = cmk_img
    container_template["imagePullPolicy"] = cmk_img_pol
    container_template["args"][0] = args
    # Each container name should be distinct within a Pod.
    container_template["name"] = cmd
    pod_init_containers_list = []

    version = util.parse_version(k8s.get_kubelet_version(None))

    if version >= util.parse_version("v1.7.0"):
        pod["spec"]["initContainers"] = [container_template]
    else:

        init_containers_key = "pod.beta.kubernetes.io/init-containers"

        if init_containers_key in pod["metadata"]["annotations"]:
            init_containers = \
                pod["metadata"]["annotations"][init_containers_key]
            pod_init_containers_list = json.loads(init_containers)

        pod_init_containers_list.append(container_template)
        pod["metadata"]["annotations"][init_containers_key] = \
            json.dumps(pod_init_containers_list)
コード例 #3
0
def update_pod_with_init_container(pod, cmd, cmk_img, cmk_img_pol, args):
    container_template = k8s.get_container_template()
    container_template["image"] = cmk_img
    container_template["imagePullPolicy"] = cmk_img_pol
    container_template["args"][0] = args
    # Each container name should be distinct within a Pod.
    container_template["name"] = cmd
    # Note(balajismaniam): Downward API for spec.nodeName doesn't seem to
    # work with init-containers. Removing it as a work-around. Needs further
    # investigation.
    container_template["env"].pop()
    pod_init_containers_list = []

    version = util.parse_version(k8s.get_kubelet_version(None))

    if version >= util.parse_version("v1.7.0"):
        pod["spec"]["initContainers"] = [container_template]
    else:

        init_containers_key = "pod.beta.kubernetes.io/init-containers"

        if init_containers_key in pod["metadata"]["annotations"]:
            init_containers = \
                pod["metadata"]["annotations"][init_containers_key]
            pod_init_containers_list = json.loads(init_containers)

        pod_init_containers_list.append(container_template)
        pod["metadata"]["annotations"][init_containers_key] = \
            json.dumps(pod_init_containers_list)
コード例 #4
0
def update_pod_with_container(pod, cmd, cmk_img, cmk_img_pol, args):
    container_template = k8s.get_container_template()
    container_template["image"] = cmk_img
    container_template["imagePullPolicy"] = cmk_img_pol
    container_template["args"][0] = args
    # Each container name should be distinct within a Pod.
    container_template["name"] = cmd
    pod["spec"]["containers"].append(container_template)