|
| 1 | +--- |
| 2 | +# |
| 3 | +# This is the canonical configuration for the `README.md` |
| 4 | +# Run `make readme` to rebuild the `README.md` |
| 5 | +# |
| 6 | + |
| 7 | +# Name of this project |
| 8 | +name: terraform-aws-kops-iam-authenticator-config |
| 9 | + |
| 10 | +# Tags of this project |
| 11 | +tags: |
| 12 | + - aws |
| 13 | + - terraform |
| 14 | + - terraform-modules |
| 15 | + - kops |
| 16 | + - kubernetes |
| 17 | + - iam |
| 18 | + - iam-authenticator |
| 19 | + |
| 20 | +# Logo for this project |
| 21 | +#logo: docs/logo.png |
| 22 | + |
| 23 | +# License of this project |
| 24 | +license: "APACHE2" |
| 25 | + |
| 26 | +# Canonical GitHub repo |
| 27 | +github_repo: cloudposse/terraform-aws-kops-iam-authenticator-config |
| 28 | + |
| 29 | +# Badges to display |
| 30 | +badges: |
| 31 | + - name: "Build Status" |
| 32 | + image: "https://travis-ci.org/cloudposse/terraform-aws-kops-iam-authenticator-config.svg?branch=master" |
| 33 | + url: "https://travis-ci.org/cloudposse/terraform-aws-kops-iam-authenticator-config" |
| 34 | + - name: "Latest Release" |
| 35 | + image: "https://img.shields.io/github/release/cloudposse/terraform-aws-kops-iam-authenticator-config.svg" |
| 36 | + url: "https://github.com/cloudposse/terraform-aws-kops-iam-authenticator-config/releases/latest" |
| 37 | + - name: "Slack Community" |
| 38 | + image: "https://slack.cloudposse.com/badge.svg" |
| 39 | + url: "https://slack.cloudposse.com" |
| 40 | + |
| 41 | +related: |
| 42 | + - name: "terraform-aws-kops-metadata" |
| 43 | + description: "Terraform module to lookup resources within a Kops cluster for easier integration with Terraform" |
| 44 | + url: "https://github.com/cloudposse/terraform-aws-kops-metadata" |
| 45 | + - name: "terraform-aws-kops-vpc-peering" |
| 46 | + description: "Terraform module to create a peering connection between a backing services VPC and a VPC created by Kops" |
| 47 | + url: "https://github.com/cloudposse/terraform-aws-kops-vpc-peering" |
| 48 | + - name: "terraform-aws-kops-ecr" |
| 49 | + description: "Terraform module to provision an ECR repository and grant users and kubernetes nodes access to it." |
| 50 | + url: "https://github.com/cloudposse/terraform-aws-kops-ecr" |
| 51 | + - name: "terraform-aws-kops-state-backend" |
| 52 | + description: "Easily bootstrap kops clusters (DNS & S3 Bucket)" |
| 53 | + url: "https://github.com/cloudposse/terraform-aws-kops-state-backend" |
| 54 | + - name: "terraform-aws-kops-external-dns" |
| 55 | + description: "Terraform module to provision an IAM role for external-dns running in a Kops cluster, and attach an IAM policy to the role with permissions to modify Route53 record sets" |
| 56 | + url: "https://github.com/cloudposse/terraform-aws-kops-external-dns" |
| 57 | + - name: "terraform-aws-kops-route53" |
| 58 | + description: "Terraform module to lookup the IAM role associated with `kops` masters, and attach an IAM policy to the role with permissions to modify Route53 record sets" |
| 59 | + url: "https://github.com/cloudposse/terraform-aws-kops-route53" |
| 60 | + - name: "terraform-aws-kops-vault-backend" |
| 61 | + description: "Terraform module to provision an S3 bucket for HashiCorp Vault secrets storage, and an IAM role and policy with permissions for Kops nodes to access the bucket" |
| 62 | + url: "https://github.com/cloudposse/terraform-aws-kops-vault-backend" |
| 63 | + - name: "terraform-aws-kops-chart-repo" |
| 64 | + description: "Terraform module to provision an S3 bucket for Helm chart repository, and an IAM role and policy with permissions for Kops nodes to access the bucket" |
| 65 | + url: "https://github.com/cloudposse/terraform-aws-kops-chart-repo" |
| 66 | + - name: "terraform-aws-eks-cluster" |
| 67 | + description: "Terraform module to provision an EKS cluster on AWS" |
| 68 | + url: "https://github.com/cloudposse/terraform-aws-eks-cluster" |
| 69 | + - name: "terraform-aws-eks-workers" |
| 70 | + description: "Terraform module to provision an AWS AutoScaling Group, IAM Role, and Security Group for EKS Workers" |
| 71 | + url: "https://github.com/cloudposse/terraform-aws-eks-workers" |
| 72 | + - name: "terraform-aws-ec2-autoscale-group" |
| 73 | + description: "Terraform module to provision AutoScaling Group and Launch Template on AWS" |
| 74 | + url: "https://github.com/cloudposse/terraform-aws-ec2-autoscale-group" |
| 75 | + |
| 76 | +# Short description of this project |
| 77 | +description: |- |
| 78 | + Terraform module to create and apply a [`Kubernetes`](https://kubernetes.io/) ConfigMap to map AWS IAM roles to Kubernetes users/groups. |
| 79 | + This will configure clusters managed by [`kops`](https://github.com/kubernetes/kops) to use [`aws-iam-authenticator`](https://github.com/kubernetes-sigs/aws-iam-authenticator), |
| 80 | + allowing to use AWS IAM credentials to authenticate to a Kubernetes cluster. |
| 81 | +
|
| 82 | +
|
| 83 | +# How to use this project |
| 84 | +usage: |- |
| 85 | +
|
| 86 | + ```hcl |
| 87 | + module "iam_authenticator_config" { |
| 88 | + source = "git::https://github.com/cloudposse/terraform-aws-kops-iam-authenticator-config.git?ref=master" |
| 89 | + cluster_id = "us-west-2.testing.example.com" |
| 90 | + kube_config_path = "/.kube/config" |
| 91 | + admin_iam_role_arn = "arn:aws:iam::000000000000:role/KubernetesAdmin" |
| 92 | + admin_k8s_username = "kubernetes-admin" |
| 93 | + admin_k8s_groups = ["system:masters"] |
| 94 | + readonly_iam_role_arn = "arn:aws:iam::000000000000:role/KubernetesReadonly" |
| 95 | + readonly_k8s_username = "kubernetes-readonly" |
| 96 | + readonly_k8s_groups = ["system:authenticated"] |
| 97 | + } |
| 98 | + ``` |
| 99 | +
|
| 100 | +references: |
| 101 | + - name: "Kops Authentication" |
| 102 | + description: "Describes what support Kops has for configuring authentication systems" |
| 103 | + url: "https://github.com/kubernetes/kops/blob/master/docs/authentication.md" |
| 104 | + - name: "aws-iam-authenticator" |
| 105 | + description: "A tool to use AWS IAM credentials to authenticate to a Kubernetes cluster" |
| 106 | + url: "https://github.com/kubernetes-sigs/aws-iam-authenticator" |
| 107 | + - name: "Getting Started with Terraform Kubernetes provider" |
| 108 | + description: "Getting Started with Terraform Kubernetes provider" |
| 109 | + url: "https://www.terraform.io/docs/providers/kubernetes/guides/getting-started.html" |
| 110 | + - name: "Terraform Kubernetes Provider" |
| 111 | + description: "Terraform Kubernetes Provider with examples" |
| 112 | + url: "https://www.terraform.io/docs/providers/kubernetes/index.html" |
| 113 | + - name: "Kubernetes RBAC Authorization" |
| 114 | + description: "Using Kubernetes RBAC Authorization" |
| 115 | + url: "https://kubernetes.io/docs/reference/access-authn-authz/rbac" |
| 116 | + |
| 117 | +include: |
| 118 | + - "docs/targets.md" |
| 119 | + - "docs/terraform.md" |
| 120 | + |
| 121 | +# Contributors to this project |
| 122 | +contributors: |
| 123 | + - name: "Erik Osterman" |
| 124 | + homepage: "https://github.com/osterman" |
| 125 | + github: "osterman" |
| 126 | + - name: "Andriy Knysh" |
| 127 | + homepage: "https://github.com/aknysh" |
| 128 | + github: "aknysh" |
0 commit comments