Ir al contenido
  1. Posts/

Generando multiples contextos de EKS con AWS SSO

·2 mins·
K8s Aws Eks Sso Kubeconfig
Tabla de contenido

La pereza nuevamente ha atacado
#

Esta situación no es la primera vez que me pasa, usualmente se ve como un, llegas a un nuevo trabajo, te dan acceso a AWS solo para darte cuenta, que tienen muchos accounts y ahí comienza la pereza, creas los perfiles de SSO ¿y ahora que?, ¿vamos a crear todos los contextos de Kubernetes a mano?.

No lo creo
#

Cuando son 2 o 3 accounts, es aceptable hasta cierto punto, pero imaginemos que son 3 cuentas, con 10 regiones, ya no suena tan fácil, ¿no?. Por ello, es mucho más fácil poder automatizar! Para ello cree el script de Kube Context Creator que podemos encontrar aquí.

Básicamente el script recibe dos inputs, AWS_PROFILESy AWS_REGIONS, el cuál va a iterar sobre ambas para listar los clusters en cada región, obteniendo información como el endpoint, certificado, nombre del cluster, etc., y con ello va a generar tres listas importantes: clusters, users y contexts. Una vez generado todo, se va a crear un archivo temporal donde esta configuración se guardara, y finalmente se hace un merge con el archivo ~/.kube/config que ya exista en el folder del usuario (en caso de no hacerlo, se crea un archivo vacío y se añaden los nuevos contexts.)

Pre-requisitos
#

No hay mucho de que hablar aquí, necesitamos tener instalado:

  • Python3
  • Pip3
  • AWS CLI
  • Perfiles de SSO configurados

¿Cómo usarlo?
#

Una vez descargado nuestro repositorio de Kubernetes Scripts procedemos a ir directo al folder de kubecontext-creator.

git clone https://github.com/AzgadAGZ/kubernetes-scripts
cd kubernetes-scripts/kubecontext-creator
pip3 install -r requirements.txt

Una vez ahí, procedemos a configurar nuestras variables de entorno AWS_PROFILESy AWS_REGIONS y ejecutamos nuestro script.

export AWS_PROFILES=account_one_sso,account_two_sso
export AWS_REGIONS=us-east-1,us-east-2

python3 main.py

Tras concluir, podemos ver nuestro archivo ~/.kube/config con una configuración parecida a la siguiente.

EKS Context Generated
EKS Contexts Generated

Y listo, nuestros contextos están listos para usar 🤖!

Relacionados

Usando AWS S3 como Persistent Volume en EKS
·8 mins
K8s Aws S3 Csi Storage
MetalLB + UDM SE + VLAN: Preparando el HomeLab
·6 mins
K8s K3s Vlan Bgp Udm
K3S: Kubernetes ligero
·7 mins
K8s K3s Tools
K3S: Kubernetes ligero
·7 mins
K8s K3s Tools