{"action":"created","comment":{"url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/comments/193183185","pull_request_review_id":126105694,"id":193183185,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5MzE4MzE4NQ==","diff_hunk":"@@ -0,0 +1,594 @@\n+---\n+layout: \"aws\"\n+page_title: \"EKS Getting Started Guide\"\n+sidebar_current: \"docs-aws-guide-eks-getting-started\"\n+description: |-\n+  Using Terraform to configure AWS EKS.\n+---\n+\n+# Getting Started with AWS EKS\n+\n+The Amazon Web Services EKS service allows for simplified management of\n+[Kubernetes](https://kubernetes.io/) servers. While the service itself is\n+quite simple from an operator perspective, understanding how it interconnects\n+with other pieces of the AWS service universe and how to configure local\n+Kubernetes clients to managed clusters can be daunting at first.\n+\n+While the EKS User Guide provides much of the up-to-date information about\n+getting started with the service from a generic standpoint, this guide provides\n+a Terraform configuration based introduction.\n+\n+This guide will show how to deploy a sample architecture using Terraform. The\n+guide assumes some basic familiarity with Kubernetes but does not\n+assume any pre-existing deployment. It also assumes that you are familiar\n+with the usual Terraform plan/apply workflow; if you're new to Terraform\n+itself, refer first to [the Getting Started guide](/intro/getting-started/install.html).\n+\n+It is worth noting that there are other valid ways to use these services and\n+resources that make different tradeoffs. We encourage readers to consult the official documentation for the respective services and resources for additional context and\n+best-practices. This guide can still serve as an introduction to the main resources\n+associated with these services, even if you choose a different architecture.\n+\n+<!-- TOC depthFrom:2 -->\n+\n+- [Guide Overview](#guide-overview)\n+- [Preparation](#preparation)\n+- [Create Sample Architecture in AWS](#create-sample-architecture-in-aws)\n+    - [Cluster Name Variable](#cluster-name-variable)\n+    - [Base VPC Networking](#base-vpc-networking)\n+    - [Kubernetes Masters](#kubernetes-masters)\n+        - [EKS Master Cluster IAM Role](#eks-master-cluster-iam-role)\n+        - [EKS Master Cluster Security Group](#eks-master-cluster-security-group)\n+        - [EKS Master Cluster](#eks-master-cluster)\n+        - [Obtaining kubectl Configuration From Terraform](#obtaining-kubectl-configuration-from-terraform)\n+    - [Kubernetes Worker Nodes](#kubernetes-worker-nodes)\n+        - [Worker Node IAM Role and Instance Profile](#worker-node-iam-role-and-instance-profile)\n+        - [Worker Node Security Group](#worker-node-security-group)\n+        - [Worker Node Access to EKS Master Cluster](#worker-node-access-to-eks-master-cluster)\n+        - [Worker Node AutoScaling Group](#worker-node-autoscaling-group)\n+        - [Required Kubernetes Configuration to Join Worker Nodes](#required-kubernetes-configuration-to-join-worker-nodes)\n+- [Destroy Sample Architecture in AWS](#destroy-sample-architecture-in-aws)\n+\n+<!-- /TOC -->\n+\n+## Guide Overview\n+\n+~> **Warning:** Following this guide will create objects in your AWS account\n+that will cost you money against your AWS bill.\n+\n+The sample architecture introduced here includes the following resources:\n+\n+* EKS Cluster: AWS managed Kubernetes cluster of master servers\n+* AutoScaling Group containing 2 m4.large instances based on the latest EKS Amazon Linux 2 AMI: Operator managed Kuberneted worker nodes for running Kubernetes service deployments\n+* Associated VPC, Internet Gateway, Security Groups, and Subnets: Operator managed networking resources for the EKS Cluster and worker node instances\n+* Associated IAM Roles and Policies: Operator managed access resources for EKS and worker node instances\n+\n+## Preparation\n+\n+In order to follow this guide you will need an AWS account and to have\n+Terraform installed.\n+[Configure your credentials](/docs/providers/aws/index.html#authentication)\n+so that Terraform is able to act on your behalf.\n+\n+For simplicity here, we will assume you are already using a set of IAM\n+credentials with suitable access to create AutoScaling, EC2, EKS, and IAM\n+resources. If you are not sure and are working in an AWS account used only for\n+development, the simplest approach to get started is to use credentials with\n+full administrative access to the target AWS account.\n+\n+If you are planning to locally use the standard Kubernetes client, `kubectl`,\n+it must be at least version 1.10 to support `exec` authentication with usage\n+of `heptio-authenticator-aws`. For additional information about installation\n+and configuration of these applications, see their official documentation.\n+\n+Relevant Links:\n+\n+* [Kubernetes Client Downloads](https://kubernetes.io/docs/imported/release/notes/#client-binaries)\n+* [Heptio Authenticator](https://github.com/heptio/authenticator)\n+\n+## Create Sample Architecture in AWS\n+\n+~> **NOTE:** We recommend using this guide to build a separate Terraform\n+configuration (for easy tear down) and more importantly running it in a\n+separate AWS account as your production infrastructure. While it is\n+self-contained and should not affect existing infrastructure, its always best\n+to be cautious!\n+\n+~> **NOTE:** If you would rather see the full sample Terraform configuration\n+for this guide rather than the individual pieces, it can be found at:\n+https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started\n+\n+### Cluster Name Variable\n+\n+The below sample Terraform configurations reference a variable called\n+`cluster-name` (`var.cluster-name`) which is used for consistency. Feel free\n+to substitute your own cluster name or create the variable configuration:\n+\n+```hcl\n+variable \"cluster-name\" {\n+  default = \"terraform-eks-demo\"\n+  type    = \"string\"\n+}\n+```\n+\n+### Base VPC Networking\n+\n+EKS requires the usage of [Virtual Private Cloud](https://aws.amazon.com/vpc/) to\n+provide the base for its networking configuration.\n+\n+~> **NOTE:** The usage of the specific `kubernetes.io/cluster/*` resource tags below are required for EKS and Kubernetes to discover and manage networking resources.\n+\n+The below will create a 10.0.0.0/16 VPC, two 10.0.X.0/24 subnets, an internet\n+gateway, and setup the subnet routing to route external traffic through the\n+internet gateway:\n+\n+```hcl\n+resource \"aws_vpc\" \"demo\" {\n+  cidr_block = \"10.0.0.0/16\"\n+\n+  tags = \"${\n+    map(\n+     \"Name\", \"terraform-eks-demo-node\",\n+     \"kubernetes.io/cluster/${var.cluster-name}\", \"shared\",\n+    )\n+  }\"\n+}\n+\n+resource \"aws_subnet\" \"demo\" {\n+  count = 2\n+\n+  availability_zone = \"${data.aws_availability_zones.available.names[count.index]}\"\n+  cidr_block        = \"10.0.${count.index}.0/24\"\n+  vpc_id            = \"${aws_vpc.demo.id}\"\n+\n+  tags = \"${\n+    map(\n+     \"Name\", \"terraform-eks-demo-node\",\n+     \"kubernetes.io/cluster/${var.cluster-name}\", \"shared\",\n+    )\n+  }\"\n+}\n+\n+resource \"aws_internet_gateway\" \"demo\" {\n+  vpc_id = \"${aws_vpc.demo.id}\"\n+\n+  tags {\n+    Name = \"terraform-eks-demo\"\n+  }\n+}\n+\n+resource \"aws_route_table\" \"demo\" {\n+  vpc_id = \"${aws_vpc.demo.id}\"\n+\n+  route {\n+    cidr_block = \"0.0.0.0/0\"\n+    gateway_id = \"${aws_internet_gateway.demo.id}\"\n+  }\n+}\n+\n+resource \"aws_route_table_association\" \"demo\" {\n+  count = 2\n+\n+  subnet_id      = \"${aws_subnet.demo.*.id[count.index]}\"\n+  route_table_id = \"${aws_route_table.demo.id}\"\n+}\n+```\n+\n+### Kubernetes Masters\n+\n+This is where the EKS service comes into play. It requires a few operator\n+managed resources beforehand so that Kubernetes can properly manage other\n+AWS services as well as allow inbound networking communication from your\n+local workstation (if desired) and worker nodes.\n+\n+#### EKS Master Cluster IAM Role\n+\n+The below is an example IAM role and policy to allow the EKS service to\n+manage or retrieve data from other AWS services. It is also possible to create\n+these policies with the [`aws_iam_policy_document` data source](/docs/providers/aws/d/iam_policy_document.html)\n+\n+For the latest required policy, see the EKS User Guide.\n+\n+```hcl\n+resource \"aws_iam_role\" \"demo-cluster\" {\n+  name = \"terraform-eks-demo-cluster\"\n+\n+  assume_role_policy = <<POLICY\n+{\n+  \"Version\": \"2012-10-17\",\n+  \"Statement\": [\n+    {\n+      \"Effect\": \"Allow\",\n+      \"Principal\": {\n+        \"Service\": \"eks.amazonaws.com\"\n+      },\n+      \"Action\": \"sts:AssumeRole\"\n+    }\n+  ]\n+}\n+POLICY\n+}\n+\n+resource \"aws_iam_role_policy_attachment\" \"demo-cluster-AmazonEKSClusterPolicy\" {\n+  policy_arn = \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\"\n+  role       = \"${aws_iam_role.demo-cluster.name}\"\n+}\n+\n+resource \"aws_iam_role_policy_attachment\" \"demo-cluster-AmazonEKSServicePolicy\" {\n+  policy_arn = \"arn:aws:iam::aws:policy/AmazonEKSServicePolicy\"\n+  role       = \"${aws_iam_role.demo-cluster.name}\"\n+}\n+```\n+\n+#### EKS Master Cluster Security Group\n+\n+This security group controls networking access to the Kubernetes masters.\n+We will later configure this with an ingress rule to allow traffic from the\n+worker nodes.\n+\n+```hcl\n+resource \"aws_security_group\" \"demo-cluster\" {\n+  name        = \"terraform-eks-demo-cluster\"\n+  description = \"Cluster communication with worker nodes\"\n+  vpc_id      = \"${aws_vpc.demo.id}\"\n+\n+  egress {\n+    from_port   = 0\n+    to_port     = 0\n+    protocol    = \"-1\"\n+    cidr_blocks = [\"0.0.0.0/0\"]\n+  }\n+\n+  tags {\n+    Name = \"terraform-eks-demo\"\n+  }\n+}\n+\n+# OPTIONAL: Allow inbound traffic from your local workstation external IP\n+#           to the Kubernetes. You will need to replace A.B.C.D below with\n+#           your real IP. Services like icanhazip.com can help you find this.\n+resource \"aws_security_group_rule\" \"demo-cluster-ingress-workstation-https\" {\n+  cidr_blocks       = [\"A.B.C.D/32\"]\n+  description       = \"Allow workstation to communicate with the cluster API Server\"\n+  from_port         = 443\n+  protocol          = \"tcp\"\n+  security_group_id = \"${aws_security_group.demo-cluster.id}\"\n+  to_port           = 443\n+  type              = \"ingress\"\n+}\n+```\n+\n+#### EKS Master Cluster\n+\n+This resource is the actual Kubernetes master cluster. It can take a few minutes to\n+provision in AWS.\n+\n+```hcl\n+resource \"aws_eks_cluster\" \"demo\" {\n+  name            = \"${var.cluster-name}\"\n+  role_arn        = \"${aws_iam_role.demo-cluster.arn}\"\n+\n+  vpc_config {\n+    security_group_ids = [\"${aws_security_group.demo-cluster.id}\"]\n+    subnet_ids         = [\"${aws_subnet.demo.*.id}\"]\n+  }\n+\n+  depends_on = [\n+    \"aws_iam_role_policy_attachment.demo-cluster-AmazonEKSClusterPolicy\",\n+    \"aws_iam_role_policy_attachment.demo-cluster-AmazonEKSServicePolicy\",\n+  ]\n+}\n+```\n+\n+#### Obtaining kubectl Configuration From Terraform\n+\n+If you are planning on using `kubectl` to manage the Kubernetes cluster, now\n+might be a great time to configure your client. The below Terraform output\n+generates a sample `kubectl` configuration to connect to your cluster.\n+\n+You can verify cluster access via `kubectl version` displaying server version\n+information in addition to local client version information.\n+\n+```hcl\n+locals {\n+  kubeconfig = <<KUBECONFIG\n+\n+\n+apiVersion: v1\n+clusters:\n+- cluster:\n+    server: ${aws_eks_cluster.demo.endpoint}\n+    certificate-authority-data: ${aws_eks_cluster.demo.certificate_authority.0.data}\n+  name: kubernetes\n+contexts:\n+- context:\n+    cluster: kubernetes\n+    user: aws\n+  name: aws\n+current-context: aws\n+kind: Config\n+preferences: {}\n+users:\n+- name: aws\n+  user:\n+    exec:\n+      apiVersion: client.authentication.k8s.io/v1alpha1\n+      command: heptio-authenticator-aws\n+      args:\n+        - \"token\"\n+        - \"-i\"\n+        - \"${var.cluster-name}\"\n+KUBECONFIG\n+}\n+\n+output \"kubeconfig\" {\n+  value = \"${local.kubeconfig}\"\n+}\n+```\n+\n+### Kubernetes Worker Nodes\n+\n+The EKS service does not currently provide managed resources for running\n+worker nodes. Here we will create a few operator managed resources so that\n+Kubernetes can properly manage other AWS services, networking access, and\n+finally a configuration that allows automatic scaling of worker nodes.\n+\n+#### Worker Node IAM Role and Instance Profile\n+\n+The below is an example IAM role and policy to allow the worker nodes to\n+manage or retrieve data from other AWS services. It is used by Kubernetes\n+to allow worker nodes to join the cluster. It is also possible to create\n+these policies with the [`aws_iam_policy_document` data source](/docs/providers/aws/d/iam_policy_document.html)\n+\n+For the latest required policy, see the EKS User Guide.\n+\n+```hcl\n+resource \"aws_iam_role\" \"demo-node\" {\n+  name = \"terraform-eks-demo-node\"\n+\n+  assume_role_policy = <<POLICY\n+{\n+  \"Version\": \"2012-10-17\",\n+  \"Statement\": [\n+    {\n+      \"Effect\": \"Allow\",\n+      \"Principal\": {\n+        \"Service\": \"ec2.amazonaws.com\"\n+      },\n+      \"Action\": \"sts:AssumeRole\"\n+    }\n+  ]\n+}\n+POLICY\n+}\n+\n+resource \"aws_iam_role_policy_attachment\" \"demo-node-AmazonEKSWorkerNodePolicy\" {\n+  policy_arn = \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\"\n+  role       = \"${aws_iam_role.demo-node.name}\"\n+}\n+\n+resource \"aws_iam_role_policy_attachment\" \"demo-node-AmazonEKS_CNI_Policy\" {\n+  policy_arn = \"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\"\n+  role       = \"${aws_iam_role.demo-node.name}\"\n+}\n+\n+resource \"aws_iam_instance_profile\" \"demo-node\" {\n+  name = \"terraform-eks-demo\"\n+  role = \"${aws_iam_role.demo-node.name}\"\n+}\n+```\n+\n+#### Worker Node Security Group\n+\n+This security group controls networking access to the Kubernetes worker nodes.\n+\n+```hcl\n+resource \"aws_security_group\" \"demo-node\" {\n+  name        = \"terraform-eks-demo-node\"\n+  description = \"Security group for all nodes in the cluster\"\n+  vpc_id      = \"${aws_vpc.demo.id}\"\n+\n+  egress {\n+    from_port   = 0\n+    to_port     = 0\n+    protocol    = \"-1\"\n+    cidr_blocks = [\"0.0.0.0/0\"]\n+  }\n+\n+  tags = \"${\n+    map(\n+     \"Name\", \"terraform-eks-demo-node\",\n+     \"kubernetes.io/cluster/${var.cluster-name}\", \"owned\",\n+    )\n+  }\"\n+}\n+\n+resource \"aws_security_group_rule\" \"demo-node-ingress-self\" {\n+  description              = \"Allow node to communicate with each other\"\n+  from_port                = 0\n+  protocol                 = \"-1\"\n+  security_group_id        = \"${aws_security_group.demo-node.id}\"\n+  source_security_group_id = \"${aws_security_group.demo-node.id}\"\n+  to_port                  = 65535\n+  type                     = \"ingress\"\n+}\n+\n+resource \"aws_security_group_rule\" \"demo-node-ingress-cluster\" {\n+  description              = \"Allow worker Kubelets and pods to receive communication from the cluster control plane\"\n+  from_port                = 1025\n+  protocol                 = \"tcp\"\n+  security_group_id        = \"${aws_security_group.demo-node.id}\"\n+  source_security_group_id = \"${aws_security_group.demo-cluster.id}\"\n+  to_port                  = 65535\n+  type                     = \"ingress\"\n+}\n+```\n+\n+#### Worker Node Access to EKS Master Cluster\n+\n+Now that we have a way to know where traffic from the worker nodes is coming\n+from, we can allow the worker nodes networking access to the EKS master cluster.\n+\n+```hcl\n+resource \"aws_security_group_rule\" \"demo-cluster-ingress-node-https\" {\n+  description              = \"Allow pods to communicate with the cluster API Server\"\n+  from_port                = 443\n+  protocol                 = \"tcp\"\n+  security_group_id        = \"${aws_security_group.demo-cluster.id}\"\n+  source_security_group_id = \"${aws_security_group.demo-node.id}\"\n+  to_port                  = 443\n+  type                     = \"ingress\"\n+}\n+```\n+\n+#### Worker Node AutoScaling Group\n+\n+Now we have everything in place to create and manage EC2 instances that will\n+serve as our worker nodes in the Kubernetes cluster. This setup utilizes\n+an EC2 AutoScaling Group (ASG) rather than manually working with EC2 instances.\n+This offers flexibility to scale up and down the worker nodes on demand when\n+used in conjunction with AutoScaling policies (not implemented here).\n+\n+First, let us create a data source to fetch the latest Amazon Machine Image\n+(AMI) that Amazon provides with an EKS compatible Kubernetes baked in.\n+\n+```hcl\n+data \"aws_ami\" \"eks-worker\" {\n+  filter {\n+    name   = \"name\"\n+    values = [\"eks-worker-*\"]\n+  }\n+\n+  most_recent = true\n+  owners      = [\"602401143452\"] # Amazon Account ID\n+}\n+```\n+\n+Next, lets create an AutoScaling Launch Configuration that uses all our\n+prerequisite resources to define how to create EC2 instances using them.\n+\n+```hcl\n+# EKS currently documents this required userdata for EKS worker nodes to\n+# properly configure Kubernetes applications on the EC2 instance.\n+# We utilize a Terraform local here to simplify Base64 encoding this\n+# information into the AutoScaling Launch Configuration.\n+locals {\n+  demo-node-userdata = <<USERDATA\n+#!/bin/bash -xe\n+\n+CA_CERTIFICATE_DIRECTORY=/etc/kubernetes/pki\n+CA_CERTIFICATE_FILE_PATH=$CA_CERTIFICATE_DIRECTORY/ca.crt\n+mkdir -p $CA_CERTIFICATE_DIRECTORY\n+echo \"${aws_eks_cluster.demo.certificate_authority.0.data}\" | base64 -d >  $CA_CERTIFICATE_FILE_PATH\n+INTERNAL_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)\n+sed -i s,MASTER_ENDPOINT,${aws_eks_cluster.demo.endpoint},g /var/lib/kubelet/kubeconfig\n+sed -i s,CLUSTER_NAME,${var.cluster-name},g /var/lib/kubelet/kubeconfig\n+sed -i s,MASTER_ENDPOINT,${aws_eks_cluster.demo.endpoint},g /etc/systemd/system/kubelet.service\n+sed -i s,MASTER_ENDPOINT,${aws_eks_cluster.demo.endpoint},g /etc/systemd/system/kube-proxy.service\n+sed -i s,INTERNAL_IP,$INTERNAL_IP,g /etc/systemd/system/kubelet.service\n+sed -i s,INTERNAL_IP,$INTERNAL_IP,g /etc/systemd/system/kube-proxy.service\n+sed -i s,CERTIFICATE_AUTHORITY_FILE,$CA_CERTIFICATE_FILE_PATH,g /var/lib/kubelet/kubeconfig\n+sed -i s,CLIENT_CA_FILE,$CA_CERTIFICATE_FILE_PATH,g  /etc/systemd/system/kubelet.service\n+systemctl daemon-reload\n+systemctl restart kubelet kube-proxy\n+USERDATA\n+}\n+\n+resource \"aws_launch_configuration\" \"demo\" {\n+  associate_public_ip_address = true\n+  iam_instance_profile        = \"${aws_iam_instance_profile.demo-node.name}\"\n+  image_id                    = \"${data.aws_ami.eks-worker.id}\"\n+  instance_type               = \"m4.large\"\n+  name_prefix                 = \"terraform-eks-demo\"\n+  security_groups             = [\"${aws_security_group.demo-node.id}\"]\n+  user_data_base64            = \"${base64encode(local.demo-node-userdata)}\"\n+\n+  lifecycle {\n+    create_before_destroy = true\n+  }\n+}\n+```\n+\n+Finally, we create an AutoScaling Group that actually launches EC2 instances\n+based on the AutoScaling Launch Configuration.\n+\n+~> **NOTE:** The usage of the specific `kubernetes.io/cluster/*` resource tag below is required for EKS and Kubernetes to discover and manage compute resources.\n+\n+```hcl\n+resource \"aws_autoscaling_group\" \"demo\" {\n+  desired_capacity     = 2\n+  launch_configuration = \"${aws_launch_configuration.demo.id}\"\n+  max_size             = 2\n+  min_size             = 1\n+  name                 = \"terraform-eks-demo\"\n+  vpc_zone_identifier  = [\"${aws_subnet.demo.*.id}\"]\n+\n+  tag {\n+    key                 = \"Name\"\n+    value               = \"terraform-eks-demo\"\n+    propagate_at_launch = true\n+  }\n+\n+  tag {\n+    key                 = \"kubernetes.io/cluster/${var.cluster-name}\"\n+    value               = \"owned\"\n+    propagate_at_launch = true\n+  }\n+}\n+```\n+\n+~> **NOTE:** At this point, your Kubernetes cluster will have running masters\n+and worker nodes, _however_, the worker nodes will not be able to join the\n+Kubernetes cluster quite yet. The next section has the required Kubernetes\n+configuration to enable the worker nodes to join the cluster.\n+\n+#### Required Kubernetes Configuration to Join Worker Nodes\n+\n+The EKS service does not provide a cluster-level API parameter or resource to\n+automatically configure the underlying Kubernetes cluster to allow worker nodes\n+to join the cluster via AWS IAM role authentication.\n+\n+While managing the underlying Kubernetes cluster configuration is beyond the\n+scope of this guide, we provide an example of how to apply the required\n+Kubernetes `ConfigMap` via `kubectl` below for completeness.","path":"website/docs/guides/eks-getting-started.html.md","position":null,"original_position":553,"commit_id":"aa4ef78ee9cd05c8f9848366bf43df2b1ea477d4","original_commit_id":"edefdcf97e50033d9a957591691ea1520b94e0b2","user":{"login":"bflad","id":189114,"node_id":"MDQ6VXNlcjE4OTExNA==","avatar_url":"https://avatars3.githubusercontent.com/u/189114?v=4","gravatar_id":"","url":"https://api.github.com/users/bflad","html_url":"https://github.com/bflad","followers_url":"https://api.github.com/users/bflad/followers","following_url":"https://api.github.com/users/bflad/following{/other_user}","gists_url":"https://api.github.com/users/bflad/gists{/gist_id}","starred_url":"https://api.github.com/users/bflad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bflad/subscriptions","organizations_url":"https://api.github.com/users/bflad/orgs","repos_url":"https://api.github.com/users/bflad/repos","events_url":"https://api.github.com/users/bflad/events{/privacy}","received_events_url":"https://api.github.com/users/bflad/received_events","type":"User","site_admin":false},"body":"FYI we'll update the link to the one from @errm post-merge 👍 ","created_at":"2018-06-05T18:53:49Z","updated_at":"2018-06-05T18:53:50Z","html_url":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749#discussion_r193183185","pull_request_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/comments/193183185"},"html":{"href":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749#discussion_r193183185"},"pull_request":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749"}},"in_reply_to_id":193176860},"pull_request":{"url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749","id":192784051,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkyNzg0MDUx","html_url":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749","diff_url":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749.diff","patch_url":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749.patch","issue_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/4749","number":4749,"state":"closed","locked":false,"title":"New Resource and Data Source: aws_eks_cluster","user":{"login":"bflad","id":189114,"node_id":"MDQ6VXNlcjE4OTExNA==","avatar_url":"https://avatars3.githubusercontent.com/u/189114?v=4","gravatar_id":"","url":"https://api.github.com/users/bflad","html_url":"https://github.com/bflad","followers_url":"https://api.github.com/users/bflad/followers","following_url":"https://api.github.com/users/bflad/following{/other_user}","gists_url":"https://api.github.com/users/bflad/gists{/gist_id}","starred_url":"https://api.github.com/users/bflad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bflad/subscriptions","organizations_url":"https://api.github.com/users/bflad/orgs","repos_url":"https://api.github.com/users/bflad/repos","events_url":"https://api.github.com/users/bflad/events{/privacy}","received_events_url":"https://api.github.com/users/bflad/received_events","type":"User","site_admin":false},"body":"Closes #2473 \r\n\r\nChanges proposed in this pull request:\r\n\r\n* New Resource: `aws_eks_cluster`\r\n* New Data Source: `aws_eks_cluster`\r\n* New Guide: EKS Getting Started\r\n\r\nOutput from acceptance testing:\r\n\r\n```\r\nPending in TeamCity\r\n```\r\n","created_at":"2018-06-05T17:37:21Z","updated_at":"2018-06-05T18:53:50Z","closed_at":"2018-06-05T18:53:15Z","merged_at":"2018-06-05T18:53:15Z","merge_commit_sha":"d34f0811ae054310cb9f65a71e086089f48d2bf1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":626015834,"node_id":"MDU6TGFiZWw2MjYwMTU4MzQ=","url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels/new-data-source","name":"new-data-source","color":"d4c5f9","default":false},{"id":625892945,"node_id":"MDU6TGFiZWw2MjU4OTI5NDU=","url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels/new-resource","name":"new-resource","color":"d4c5f9","default":false},{"id":955256302,"node_id":"MDU6TGFiZWw5NTUyNTYzMDI=","url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels/service/eks","name":"service/eks","color":"bfd4f2","default":false},{"id":737832202,"node_id":"MDU6TGFiZWw3Mzc4MzIyMDI=","url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels/size/XXL","name":"size/XXL","color":"ffffff","default":false}],"milestone":{"url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/milestones/25","html_url":"https://github.com/terraform-providers/terraform-provider-aws/milestone/25","labels_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/milestones/25/labels","id":3387754,"node_id":"MDk6TWlsZXN0b25lMzM4Nzc1NA==","number":25,"title":"v1.22.0","description":"","creator":{"login":"bflad","id":189114,"node_id":"MDQ6VXNlcjE4OTExNA==","avatar_url":"https://avatars3.githubusercontent.com/u/189114?v=4","gravatar_id":"","url":"https://api.github.com/users/bflad","html_url":"https://github.com/bflad","followers_url":"https://api.github.com/users/bflad/followers","following_url":"https://api.github.com/users/bflad/following{/other_user}","gists_url":"https://api.github.com/users/bflad/gists{/gist_id}","starred_url":"https://api.github.com/users/bflad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bflad/subscriptions","organizations_url":"https://api.github.com/users/bflad/orgs","repos_url":"https://api.github.com/users/bflad/repos","events_url":"https://api.github.com/users/bflad/events{/privacy}","received_events_url":"https://api.github.com/users/bflad/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":33,"state":"open","created_at":"2018-05-30T15:09:09Z","updated_at":"2018-06-05T18:53:15Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749/commits","review_comments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749/comments","review_comment_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/comments{/number}","comments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/4749/comments","statuses_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/statuses/aa4ef78ee9cd05c8f9848366bf43df2b1ea477d4","head":{"label":"terraform-providers:f-aws_eks_cluster","ref":"f-aws_eks_cluster","sha":"aa4ef78ee9cd05c8f9848366bf43df2b1ea477d4","user":{"login":"terraform-providers","id":29154831,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTU0ODMx","avatar_url":"https://avatars0.githubusercontent.com/u/29154831?v=4","gravatar_id":"","url":"https://api.github.com/users/terraform-providers","html_url":"https://github.com/terraform-providers","followers_url":"https://api.github.com/users/terraform-providers/followers","following_url":"https://api.github.com/users/terraform-providers/following{/other_user}","gists_url":"https://api.github.com/users/terraform-providers/gists{/gist_id}","starred_url":"https://api.github.com/users/terraform-providers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terraform-providers/subscriptions","organizations_url":"https://api.github.com/users/terraform-providers/orgs","repos_url":"https://api.github.com/users/terraform-providers/repos","events_url":"https://api.github.com/users/terraform-providers/events{/privacy}","received_events_url":"https://api.github.com/users/terraform-providers/received_events","type":"Organization","site_admin":false},"repo":{"id":93444615,"node_id":"MDEwOlJlcG9zaXRvcnk5MzQ0NDYxNQ==","name":"terraform-provider-aws","full_name":"terraform-providers/terraform-provider-aws","owner":{"login":"terraform-providers","id":29154831,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTU0ODMx","avatar_url":"https://avatars0.githubusercontent.com/u/29154831?v=4","gravatar_id":"","url":"https://api.github.com/users/terraform-providers","html_url":"https://github.com/terraform-providers","followers_url":"https://api.github.com/users/terraform-providers/followers","following_url":"https://api.github.com/users/terraform-providers/following{/other_user}","gists_url":"https://api.github.com/users/terraform-providers/gists{/gist_id}","starred_url":"https://api.github.com/users/terraform-providers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terraform-providers/subscriptions","organizations_url":"https://api.github.com/users/terraform-providers/orgs","repos_url":"https://api.github.com/users/terraform-providers/repos","events_url":"https://api.github.com/users/terraform-providers/events{/privacy}","received_events_url":"https://api.github.com/users/terraform-providers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/terraform-providers/terraform-provider-aws","description":"Terraform AWS provider","fork":false,"url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws","forks_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/forks","keys_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/teams","hooks_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/hooks","issue_events_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/events{/number}","events_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/events","assignees_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/assignees{/user}","branches_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/branches{/branch}","tags_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/tags","blobs_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/languages","stargazers_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/stargazers","contributors_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/contributors","subscribers_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/subscribers","subscription_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/subscription","commits_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/contents/{+path}","compare_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/merges","archive_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/downloads","issues_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues{/number}","pulls_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels{/name}","releases_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/releases{/id}","deployments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/deployments","created_at":"2017-06-05T20:37:52Z","updated_at":"2018-06-05T18:53:46Z","pushed_at":"2018-06-05T18:53:17Z","git_url":"git://github.com/terraform-providers/terraform-provider-aws.git","ssh_url":"git@github.com:terraform-providers/terraform-provider-aws.git","clone_url":"https://github.com/terraform-providers/terraform-provider-aws.git","svn_url":"https://github.com/terraform-providers/terraform-provider-aws","homepage":"https://www.terraform.io/docs/providers/aws/","size":40479,"stargazers_count":1193,"watchers_count":1193,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1045,"mirror_url":null,"archived":false,"open_issues_count":1791,"license":{"key":"mpl-2.0","name":"Mozilla Public License 2.0","spdx_id":"MPL-2.0","url":"https://api.github.com/licenses/mpl-2.0","node_id":"MDc6TGljZW5zZTE0"},"forks":1045,"open_issues":1791,"watchers":1193,"default_branch":"master"}},"base":{"label":"terraform-providers:master","ref":"master","sha":"d847c8d43b42d3744bf7e1573e9da98ba52be46a","user":{"login":"terraform-providers","id":29154831,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTU0ODMx","avatar_url":"https://avatars0.githubusercontent.com/u/29154831?v=4","gravatar_id":"","url":"https://api.github.com/users/terraform-providers","html_url":"https://github.com/terraform-providers","followers_url":"https://api.github.com/users/terraform-providers/followers","following_url":"https://api.github.com/users/terraform-providers/following{/other_user}","gists_url":"https://api.github.com/users/terraform-providers/gists{/gist_id}","starred_url":"https://api.github.com/users/terraform-providers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terraform-providers/subscriptions","organizations_url":"https://api.github.com/users/terraform-providers/orgs","repos_url":"https://api.github.com/users/terraform-providers/repos","events_url":"https://api.github.com/users/terraform-providers/events{/privacy}","received_events_url":"https://api.github.com/users/terraform-providers/received_events","type":"Organization","site_admin":false},"repo":{"id":93444615,"node_id":"MDEwOlJlcG9zaXRvcnk5MzQ0NDYxNQ==","name":"terraform-provider-aws","full_name":"terraform-providers/terraform-provider-aws","owner":{"login":"terraform-providers","id":29154831,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5MTU0ODMx","avatar_url":"https://avatars0.githubusercontent.com/u/29154831?v=4","gravatar_id":"","url":"https://api.github.com/users/terraform-providers","html_url":"https://github.com/terraform-providers","followers_url":"https://api.github.com/users/terraform-providers/followers","following_url":"https://api.github.com/users/terraform-providers/following{/other_user}","gists_url":"https://api.github.com/users/terraform-providers/gists{/gist_id}","starred_url":"https://api.github.com/users/terraform-providers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terraform-providers/subscriptions","organizations_url":"https://api.github.com/users/terraform-providers/orgs","repos_url":"https://api.github.com/users/terraform-providers/repos","events_url":"https://api.github.com/users/terraform-providers/events{/privacy}","received_events_url":"https://api.github.com/users/terraform-providers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/terraform-providers/terraform-provider-aws","description":"Terraform AWS provider","fork":false,"url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws","forks_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/forks","keys_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/teams","hooks_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/hooks","issue_events_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/events{/number}","events_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/events","assignees_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/assignees{/user}","branches_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/branches{/branch}","tags_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/tags","blobs_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/languages","stargazers_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/stargazers","contributors_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/contributors","subscribers_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/subscribers","subscription_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/subscription","commits_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/contents/{+path}","compare_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/merges","archive_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/downloads","issues_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues{/number}","pulls_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/labels{/name}","releases_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/releases{/id}","deployments_url":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/deployments","created_at":"2017-06-05T20:37:52Z","updated_at":"2018-06-05T18:53:46Z","pushed_at":"2018-06-05T18:53:17Z","git_url":"git://github.com/terraform-providers/terraform-provider-aws.git","ssh_url":"git@github.com:terraform-providers/terraform-provider-aws.git","clone_url":"https://github.com/terraform-providers/terraform-provider-aws.git","svn_url":"https://github.com/terraform-providers/terraform-provider-aws","homepage":"https://www.terraform.io/docs/providers/aws/","size":40479,"stargazers_count":1193,"watchers_count":1193,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1045,"mirror_url":null,"archived":false,"open_issues_count":1791,"license":{"key":"mpl-2.0","name":"Mozilla Public License 2.0","spdx_id":"MPL-2.0","url":"https://api.github.com/licenses/mpl-2.0","node_id":"MDc6TGljZW5zZTE0"},"forks":1045,"open_issues":1791,"watchers":1193,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749"},"html":{"href":"https://github.com/terraform-providers/terraform-provider-aws/pull/4749"},"issue":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/4749"},"comments":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/issues/4749/comments"},"review_comments":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749/comments"},"review_comment":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/pulls/4749/commits"},"statuses":{"href":"https://api.github.com/repos/terraform-providers/terraform-provider-aws/statuses/aa4ef78ee9cd05c8f9848366bf43df2b1ea477d4"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"bflad"}}