Dennis Zheleznyak

Dennis Zheleznyak

DevOps Engineer bigpanda

© 2021

Kops with AWS profiles

In order to configure/ edit/ maintain your Kubernetes cluster using kops, you need credentials. These credentials are the same as the ones you use to interact with your AWS account.

Sometimes, you have multiple accounts and/or mutiple users with different permissions, different keys and secret keys. Personally, I avoid setting these sensitive keys as environment variables by using the following method.

Kops - Version 1.16.0
AWS - aws-cli/2.0.8 Python/3.8.2 Darwin/19.4.0 botocore/2.0.0dev12

First, update your aws configuration:

vi ~/.aws/config

[profile kops_admin]
region=XX-XXXX-X
vi ~/.aws/credentials

[kops_admin]
aws_access_key_id=XXXXXXXXX
aws_secret_access_key=XXXXXXXXXX

Add an alias to your bash/zsh profile:

vi ~/.zshrc

alias kops="AWS_ACCESS_KEY_ID=$(aws configure get profile.kops_admin.aws_access_key_id) AWS_SECRET_ACCESS_KEY=$(aws configure get profile.kops_admin.aws_secret_access_key) kops"

Now, you can use kops without setting anything beforehand

Bonus - to avoid setting the backend store each time, you can use kops configuration file (I use Amazons S3)

vi ~/.kops/config

kops_state_store: s3://<ClusterName>