# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import logging import os import subprocess logger = logging.getLogger() logger.setLevel(logging.INFO) os.environ["PATH"] = "/opt/kubectl:/opt/awscli:" + os.environ["PATH"] def create_kube_config_file( config_file_path: str, cluster_name: str, k8s_client_role_arn: str ) -> None: # "log in" to the cluster cmd = [ "aws", "eks", "update-kubeconfig", "--role-arn", k8s_client_role_arn, "--name", cluster_name, "--kubeconfig", config_file_path, ] logging.info(f"Running command: {cmd}") subprocess.check_call(cmd)