in functions/source/KubeManifest/lambda_function.py [0:0]
def enable_proxy(proxy_host, vpc_id):
configmap = {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "proxy-environment-variables",
"namespace": "kube-system"
},
"data": {
"HTTP_PROXY": proxy_host,
"HTTPS_PROXY": proxy_host,
"NO_PROXY": "localhost,127.0.0.1,169.254.169.254,.internal"
}
}
cluster_ip = run_command(
"kubectl get service/kubernetes -o jsonpath='{.spec.clusterIP}'"
)
cluster_cidr = ".".join(cluster_ip.split(".")[:3]) + ".0/16"
vpc_cidr = ec2_client.describe_vpcs(VpcIds=[vpc_id])['Vpcs'][0]['CidrBlock']
configmap["data"]["NO_PROXY"] += f"{vpc_cidr},{cluster_cidr}"
write_manifest(configmap, '/tmp/proxy.json')
run_command("kubectl apply -f /tmp/proxy.json")
patch_cmd = (
"""kubectl patch -n kube-system -p '{ "spec": {"template": { "spec": { """
""""containers": [ { "name": "%s", "envFrom": [ { "configMapRef": {"name": """
""""proxy-environment-variables"} } ] } ] } } } }' daemonset %s"""
)
setenv_cmd = (
"""kubectl set env daemonset/%s --namespace=kube-system """
"""--from=configmap/proxy-environment-variables --containers='*'"""
)
for pod in ["aws-node", "kube-proxy"]:
logger.debug(run_command(patch_cmd % (pod, pod)))
logger.debug(run_command(setenv_cmd % pod))