node-tagger

module
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2020 License: Apache-2.0

README

node-tagger

Overview

node-tagger is a Kubernetes operator that applies specified tags to all aws nodes of the cluster.

Deployment

Prerequisites

The controller requires AWS credentials to be set before deploying it. This is accomplished by creating a secret with name aws-credentials in the controller namespace with the following keys:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

For example running the following will create an appropriate secret in the node-tagger namespace:

kubectl create secret generic aws-credentials --from-literal=AWS_ACCESS_KEY_ID=access_key --from-literal=AWS_SECRET_ACCESS_KEY=secret_access_key --namespace=node-tagger
Required IAM permissions

The operator requires ec2:CreateTags and ec2:DescribeInstance permissions for the nodes that we are going to tag

Deploy the operator

Deploy the operator dependencies:

kubectl apply -f deploy/service_account.yaml -n node-tagger
kubectl apply -f deploy/role.yaml -n node-tagger
kubectl apply -f deploy/role_binding.yaml -n node-tagger

Deploy the operator:

kubectl apply -f deploy/deployment.yaml -n node-tagger
Deploying via helm chart
Without existing credentials secret
helm upgrade --install node-tagger https://github.com/ouzi-dev/node-tagger/releases/download/${VERSION}/node-tagger-${VERSION}.tgz \
    -n node-tagger \
    --set awsCredentials.create=true \
    --set awsCredentials.awsAccessKeyId=access_key \
    --set awsCredentials.awsSecretAccessKey=secret_access_key \
    --set awsCredentials.awsRegion=region \
    --set tagsToApply[0].name=tag1,tagsToApply[0].value=value1

Where ${VERSION} is the version you want to install

With existing credentials secret
helm upgrade --install node-tagger https://github.com/ouzi-dev/node-tagger/releases/download/${VERSION}/node-tagger-${VERSION}.tgz \
    -n node-tagger \
    --set awsCredentials.secretName=aws-credentials \
    --set tagsToApply[0].name=tag1,tagsToApply[0].value=value1

Where ${VERSION} is the version you want to install

Without using a secret (For example using a EKS service account)
helm upgrade --install node-tagger https://github.com/ouzi-dev/node-tagger/releases/download/${VERSION}/node-tagger-${VERSION}.tgz \
    -n node-tagger \
    --set awsCredentials.useSecret=false \
    --set tagsToApply[0].name=tag1,tagsToApply[0].value=value1 \
    --set serviceAccount.annotations."eks\.amazonaws\.com/role-arn"="arn:aws:iam::123456789:role/my-role-name"

Where ${VERSION} is the version you want to install

Directories

Path Synopsis
cmd
pkg
aws
env
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL