Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
eks-alb-ingress
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
terraform-eks
eks-alb-ingress
Commits
c67b5293
Commit
c67b5293
authored
Feb 28, 2019
by
Danny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init commit
parent
58c787be
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
180 additions
and
28 deletions
+180
-28
eks-alb-clusterrolebinding.tf
eks-alb-clusterrolebinding.tf
+37
-0
eks-alb-ingress.tf
eks-alb-ingress.tf
+50
-25
eks-alb-serviceaccount.tf
eks-alb-serviceaccount.tf
+6
-0
iam.tf
iam.tf
+85
-0
variables.tf
variables.tf
+2
-3
No files found.
eks-alb-clusterrolebinding.tf
0 → 100644
View file @
c67b5293
resource
"kubernetes_cluster_role"
"aws_alb_cluster_role"
{
metadata
{
name
=
"aws-alb-svc-acc"
}
rule
{
api_groups
=
[
"rbac.authorization.k8s.io/v1beta1"
,
"rbac.authorization.k8s.io"
,
"extensions"
]
resources
=
[
"configmaps"
,
"namespaces"
,
"pods"
,
"services"
,
"nodes"
,
"ingresses"
,
"secrets"
]
resource_names
=
[
""
]
verbs
=
[
"get"
,
"list"
,
"watch"
,
"create"
,
"patch"
,
"delete"
]
}
}
resource
"kubernetes_cluster_role_binding"
"aws_alb_cluster_role_bind"
{
metadata
{
name
=
"aws-alb-svc-acc"
}
role_ref
{
api_group
=
"rbac.authorization.k8s.io"
kind
=
"ClusterRole"
name
=
"cluster-admin"
}
subject
{
kind
=
"ServiceAccount"
name
=
"aws-alb-svc-acc"
namespace
=
"kube-system"
api_group
=
""
}
subject
{
kind
=
"Group"
name
=
"system:serviceaccount"
api_group
=
"rbac.authorization.k8s.io"
}
}
eks-alb-ingress.tf
View file @
c67b5293
resource
"kubernetes_
service"
"alb_ingress_service
"
{
resource
"kubernetes_
deployment"
"aws_alb_ingress_deployment
"
{
metadata
{
name
=
"alb-ingress-service"
name
=
"alb-ingress-controller"
namespace
=
"kube-system"
}
spec
{
selector
{
app
=
"
${
kubernetes_pod
.
alb-ingress-pod
.
metadata
.
0
.
labels
.
app
}
"
}
replicas
=
1
port
{
port
=
80
target_port
=
8080
selector
{
match_labels
{
name
=
"aws-alb-ingress-controller"
}
type
=
"ExternalName"
}
}
resource
"kubernetes_pod"
"alb-ingress-pod"
{
template
{
metadata
{
name
=
"alb-ingress-pod"
name
=
"aws-alb-ingress-controller"
annotations
{
"iam.amazonaws.com/role"
=
"eks-alb-ingress-controller"
}
labels
{
app
=
"
${
var
.
customer
}
-alb-ingress
"
name
=
"aws-alb-ingress-controller
"
}
}
spec
{
service_account_name
=
"aws-alb-svc-acc"
termination_grace_period_seconds
=
60
volume
{
name
=
"
${
kubernetes_service_account
.
aws_alb_service_account
.
default_secret_name
}
"
secret
{
secret_name
=
"
${
kubernetes_service_account
.
aws_alb_service_account
.
default_secret_name
}
"
}
}
container
{
image
=
"amazon/aws-alb-ingress-controller
"
image
=
"amazon/aws-alb-ingress-controller:v1.1.1
"
name
=
"aws-alb-ingress-container"
image_pull_policy
=
"IfNotPresent"
args
=
[
"--cluster-name=
${
var
.
cluster_name
}
"
]
volume_mount
{
mount_path
=
"/var/run/secrets/kubernetes.io/serviceaccount"
name
=
"
${
kubernetes_service_account
.
aws_alb_service_account
.
default_secret_name
}
"
read_only
=
true
}
port
{
name
=
"health"
container_port
=
10254
protocol
=
"TCP"
}
}
}
}
}
}
eks-alb-serviceaccount.tf
0 → 100644
View file @
c67b5293
resource
"kubernetes_service_account"
"aws_alb_service_account"
{
metadata
{
name
=
"aws-alb-svc-acc"
namespace
=
"kube-system"
}
}
iam.tf
0 → 100644
View file @
c67b5293
data
"aws_iam_policy_document"
"ec2_assume"
{
statement
{
actions
=
[
"sts:AssumeRole"
,
]
principals
{
type
=
"Service"
identifiers
=
[
"ec2.amazonaws.com"
]
}
}
statement
{
actions
=
[
"sts:AssumeRole"
,
]
principals
{
type
=
"AWS"
identifiers
=
[
"
${
var
.
worker_iam_role_arn
}
"
]
}
}
}
# TODO: Convert JSON into datasource
data
"aws_iam_policy_document"
"ingress"
{
statement
{
actions
=
[
"acm:DescribeCertificate"
,
"acm:ListCertificates"
,
"acm:GetCertificate"
,
]
resources
=
[
"*"
]
actions
=
[
"ec2:AuthorizeSecurityGroupIngress"
,
"ec2:CreateSecurityGroup"
,
"ec2:CreateTags"
,
"ec2:DeleteSecurityGroup"
,
"ec2:DescribeInstances"
,
"ec2:DescribeInstanceStatus"
,
"ec2:DescribeSecurityGroups"
,
"ec2:DescribeSubnets"
,
"ec2:DescribeTags"
,
"ec2:DescribeVpcs"
,
"ec2:ModifyInstanceAttribute"
,
"ec2:RevokeSecurityGroupIngress"
,
]
resources
=
[
"*"
]
actions
=
[
"iam:GetServerCertificate"
,
"iam:ListServerCertificates"
,
]
actions
=
[
"waf-regional:GetWebACLForResource"
,
"waf-regional:GetWebACL"
,
"waf-regional:AssociateWebACL"
,
"waf-regional:DisassociateWebACL"
,
]
actions
=
[
"waf:GetWebACL"
,
]
resources
=
[
"*"
]
}
}
resource
"aws_iam_policy"
"this"
{
policy
=
"
${data
.
aws_iam_policy_document
.
ingress
.
json
}
"
}
resource
"aws_iam_role"
"this"
{
name
=
"eks-alb-ingress-controller"
assume_role_policy
=
"
${data
.
aws_iam_policy_document
.
ec2_assume
.
json
}
"
}
resource
"aws_iam_role_policy_attachment"
"this"
{
role
=
"
${
aws_iam_role
.
this
.
name
}
"
policy_arn
=
"
${
aws_iam_policy
.
this
.
arn
}
"
}
variables.tf
View file @
c67b5293
variable
"customer"
{
default
=
"Cronofy"
}
variable
"worker_iam_role_arn"
{}
variable
"cluster_name"
{}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment