Skip to content

Commit ec877b1

Browse files
authored
Merge branch 'dev' into 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/skipper
2 parents 462fbae + ae78c65 commit ec877b1

File tree

24 files changed

+1318
-32
lines changed

24 files changed

+1318
-32
lines changed

cluster/cluster.yaml

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3222,6 +3222,217 @@ Resources:
32223222
PolicyName: root
32233223
RoleName: "{{.Cluster.LocalID}}-audittrail-adapter"
32243224
Type: 'AWS::IAM::Role'
3225+
# {{- if and (eq .Cluster.Provider "zalando-eks") (eq .Cluster.ConfigItems.eks_ip_family "ipv6") }}
3226+
AWSLoadBalancerControllerIAMRole:
3227+
Properties:
3228+
AssumeRolePolicyDocument: !Sub
3229+
- |
3230+
{
3231+
"Version": "2012-10-17",
3232+
"Statement": [
3233+
{
3234+
"Effect": "Allow",
3235+
"Principal": {
3236+
"Federated": [
3237+
"arn:aws:iam::${AWS::AccountId}:oidc-provider/${OIDC}"
3238+
]
3239+
},
3240+
"Action": [
3241+
"sts:AssumeRoleWithWebIdentity"
3242+
],
3243+
"Condition": {
3244+
"StringEquals": {
3245+
"${OIDC}:sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
3246+
}
3247+
}
3248+
}
3249+
]
3250+
}
3251+
- OIDC: !Select [1, !Split ["//", !GetAtt EKSCluster.OpenIdConnectIssuerUrl]]
3252+
Path: /
3253+
Policies:
3254+
- PolicyDocument:
3255+
Version: '2012-10-17'
3256+
Statement:
3257+
- Effect: Allow
3258+
Action:
3259+
- iam:CreateServiceLinkedRole
3260+
Resource: "*"
3261+
Condition:
3262+
StringEquals:
3263+
iam:AWSServiceName: elasticloadbalancing.amazonaws.com
3264+
- Effect: Allow
3265+
Action:
3266+
- ec2:DescribeAccountAttributes
3267+
- ec2:DescribeAddresses
3268+
- ec2:DescribeAvailabilityZones
3269+
- ec2:DescribeInternetGateways
3270+
- ec2:DescribeVpcs
3271+
- ec2:DescribeVpcPeeringConnections
3272+
- ec2:DescribeSubnets
3273+
- ec2:DescribeSecurityGroups
3274+
- ec2:DescribeInstances
3275+
- ec2:DescribeNetworkInterfaces
3276+
- ec2:DescribeTags
3277+
- ec2:GetCoipPoolUsage
3278+
- ec2:DescribeCoipPools
3279+
- ec2:GetSecurityGroupsForVpc
3280+
- ec2:DescribeIpamPools
3281+
- elasticloadbalancing:DescribeLoadBalancers
3282+
- elasticloadbalancing:DescribeLoadBalancerAttributes
3283+
- elasticloadbalancing:DescribeListeners
3284+
- elasticloadbalancing:DescribeListenerCertificates
3285+
- elasticloadbalancing:DescribeSSLPolicies
3286+
- elasticloadbalancing:DescribeRules
3287+
- elasticloadbalancing:DescribeTargetGroups
3288+
- elasticloadbalancing:DescribeTargetGroupAttributes
3289+
- elasticloadbalancing:DescribeTargetHealth
3290+
- elasticloadbalancing:DescribeTags
3291+
- elasticloadbalancing:DescribeTrustStores
3292+
- elasticloadbalancing:DescribeListenerAttributes
3293+
- elasticloadbalancing:DescribeCapacityReservation
3294+
Resource: "*"
3295+
- Effect: Allow
3296+
Action:
3297+
- cognito-idp:DescribeUserPoolClient
3298+
- acm:ListCertificates
3299+
- acm:DescribeCertificate
3300+
- iam:ListServerCertificates
3301+
- iam:GetServerCertificate
3302+
- waf-regional:GetWebACL
3303+
- waf-regional:GetWebACLForResource
3304+
- waf-regional:AssociateWebACL
3305+
- waf-regional:DisassociateWebACL
3306+
- wafv2:GetWebACL
3307+
- wafv2:GetWebACLForResource
3308+
- wafv2:AssociateWebACL
3309+
- wafv2:DisassociateWebACL
3310+
- shield:GetSubscriptionState
3311+
- shield:DescribeProtection
3312+
- shield:CreateProtection
3313+
- shield:DeleteProtection
3314+
Resource: "*"
3315+
- Effect: Allow
3316+
Action:
3317+
- ec2:AuthorizeSecurityGroupIngress
3318+
- ec2:RevokeSecurityGroupIngress
3319+
Resource: "*"
3320+
- Effect: Allow
3321+
Action:
3322+
- ec2:CreateSecurityGroup
3323+
Resource: "*"
3324+
- Effect: Allow
3325+
Action:
3326+
- ec2:CreateTags
3327+
Resource: arn:aws:ec2:*:*:security-group/*
3328+
Condition:
3329+
StringEquals:
3330+
ec2:CreateAction: CreateSecurityGroup
3331+
'Null':
3332+
aws:RequestTag/elbv2.k8s.aws/cluster: 'false'
3333+
- Effect: Allow
3334+
Action:
3335+
- ec2:CreateTags
3336+
- ec2:DeleteTags
3337+
Resource: arn:aws:ec2:*:*:security-group/*
3338+
Condition:
3339+
'Null':
3340+
aws:RequestTag/elbv2.k8s.aws/cluster: 'true'
3341+
aws:ResourceTag/elbv2.k8s.aws/cluster: 'false'
3342+
- Effect: Allow
3343+
Action:
3344+
- ec2:AuthorizeSecurityGroupIngress
3345+
- ec2:RevokeSecurityGroupIngress
3346+
- ec2:DeleteSecurityGroup
3347+
Resource: "*"
3348+
Condition:
3349+
'Null':
3350+
aws:ResourceTag/elbv2.k8s.aws/cluster: 'false'
3351+
- Effect: Allow
3352+
Action:
3353+
- elasticloadbalancing:CreateLoadBalancer
3354+
- elasticloadbalancing:CreateTargetGroup
3355+
Resource: "*"
3356+
Condition:
3357+
'Null':
3358+
aws:RequestTag/elbv2.k8s.aws/cluster: 'false'
3359+
- Effect: Allow
3360+
Action:
3361+
- elasticloadbalancing:CreateListener
3362+
- elasticloadbalancing:DeleteListener
3363+
- elasticloadbalancing:CreateRule
3364+
- elasticloadbalancing:DeleteRule
3365+
Resource: "*"
3366+
- Effect: Allow
3367+
Action:
3368+
- elasticloadbalancing:AddTags
3369+
- elasticloadbalancing:RemoveTags
3370+
Resource:
3371+
- arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3372+
- arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*
3373+
- arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*
3374+
Condition:
3375+
'Null':
3376+
aws:RequestTag/elbv2.k8s.aws/cluster: 'true'
3377+
aws:ResourceTag/elbv2.k8s.aws/cluster: 'false'
3378+
- Effect: Allow
3379+
Action:
3380+
- elasticloadbalancing:AddTags
3381+
- elasticloadbalancing:RemoveTags
3382+
Resource:
3383+
- arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*
3384+
- arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*
3385+
- arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*
3386+
- arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*
3387+
- Effect: Allow
3388+
Action:
3389+
- elasticloadbalancing:ModifyLoadBalancerAttributes
3390+
- elasticloadbalancing:SetIpAddressType
3391+
- elasticloadbalancing:SetSecurityGroups
3392+
- elasticloadbalancing:SetSubnets
3393+
- elasticloadbalancing:DeleteLoadBalancer
3394+
- elasticloadbalancing:ModifyTargetGroup
3395+
- elasticloadbalancing:ModifyTargetGroupAttributes
3396+
- elasticloadbalancing:DeleteTargetGroup
3397+
- elasticloadbalancing:ModifyListenerAttributes
3398+
- elasticloadbalancing:ModifyCapacityReservation
3399+
- elasticloadbalancing:ModifyIpPools
3400+
Resource: "*"
3401+
Condition:
3402+
'Null':
3403+
aws:ResourceTag/elbv2.k8s.aws/cluster: 'false'
3404+
- Effect: Allow
3405+
Action:
3406+
- elasticloadbalancing:AddTags
3407+
Resource:
3408+
- arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3409+
- arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*
3410+
- arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*
3411+
Condition:
3412+
StringEquals:
3413+
elasticloadbalancing:CreateAction:
3414+
- CreateTargetGroup
3415+
- CreateLoadBalancer
3416+
'Null':
3417+
aws:RequestTag/elbv2.k8s.aws/cluster: 'false'
3418+
- Effect: Allow
3419+
Action:
3420+
- elasticloadbalancing:RegisterTargets
3421+
- elasticloadbalancing:DeregisterTargets
3422+
Resource: arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3423+
- Effect: Allow
3424+
Action:
3425+
- elasticloadbalancing:SetWebAcl
3426+
- elasticloadbalancing:ModifyListener
3427+
- elasticloadbalancing:AddListenerCertificates
3428+
- elasticloadbalancing:RemoveListenerCertificates
3429+
- elasticloadbalancing:ModifyRule
3430+
- elasticloadbalancing:SetRulePriorities
3431+
Resource: "*"
3432+
PolicyName: root
3433+
RoleName: "aws-load-balancer-controller-{{.Cluster.Name}}"
3434+
Type: 'AWS::IAM::Role'
3435+
# {{- end }}
32253436
RemoteFilesEncryptionKey:
32263437
Type: "AWS::KMS::Key"
32273438
Properties:

cluster/config-defaults.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,12 @@ skipper_serve_method_metric: "false"
305305
# defines if the http response status code is included in the dimension
306306
# of the skipper_serve_host_duration_seconds_bucket metric.
307307
skipper_serve_status_code_metric: "false"
308+
# skipper_combined_response_metrics sets the flag -combined-response-metrics.
309+
# It enables reporting combined response time metrics
310+
skipper_combined_response_metrics: "false"
311+
# skipper_backend_host_metrics sets the flag -backend-host-metrics.
312+
# It enables reporting total serve time metrics for backend
313+
skipper_backend_host_metrics: "false"
308314

309315
# disabled|provisioned|enabled routegroup validation via skipper webhook
310316
# can be one of disabled|provisioned|enabled
@@ -1290,3 +1296,7 @@ aws_vpc_cni_custom_networking: "false"
12901296
aws_vpc_cni_enable_network_policy: "false"
12911297
# specify the network policy enforcement mode.
12921298
aws_vpc_cni_network_policy_enforcing_mode: "standard"
1299+
1300+
# aws-load-balancer-controller resource settings
1301+
aws_load_balancer_controller_cpu: "100m"
1302+
aws_load_balancer_controller_mem_max: "4Gi"

cluster/manifests/02-admission-control/config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ data:
1313
dns.default.subdomain-max-length: "{{ .Cluster.ConfigItems.subdomain_max_length }}"
1414

1515
generic.prevent-write-operations.enable: "{{ .Cluster.ConfigItems.teapot_admission_controller_prevent_write_operations }}"
16+
{{- if and (eq .Cluster.Provider "zalando-eks") (eq .Cluster.ConfigItems.eks_ip_family "ipv6") }}
17+
generic.inject-albc-defaults.enable: "true"
18+
{{- end }}
1619

1720
pod.container-resource-control.min-memory-request: "25Mi"
1821
pod.container-resource-control.default-cpu-request: "{{ .Cluster.ConfigItems.teapot_admission_controller_default_cpu_request }}"

cluster/manifests/02-admission-control/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ spec:
3333
priorityClassName: system-cluster-critical
3434
containers:
3535
- name: admission-controller
36-
image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/admission-controller:master-252
36+
image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/admission-controller:master-257
3737
lifecycle:
3838
preStop:
3939
exec:

cluster/manifests/03-kube-aws-iam-controller/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ spec:
2727
hostNetwork: true
2828
containers:
2929
- name: kube-aws-iam-controller
30-
image: container-registry.zalando.net/teapot/kube-aws-iam-controller:v0.3.0-76-g1a28806
30+
image: container-registry.zalando.net/teapot/kube-aws-iam-controller:v0.3.0-78-gfb82543
3131
env:
3232
- name: AWS_DEFAULT_REGION
3333
value: "{{.Cluster.Region}}"

cluster/manifests/04-ebs-csi/controller.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ spec:
9191
allowPrivilegeEscalation: false
9292
readOnlyRootFilesystem: true
9393
- name: csi-provisioner
94-
image: container-registry.zalando.net/teapot/external-provisioner:v5.1.0-eks-1-31-10-master-28
94+
image: container-registry.zalando.net/teapot/external-provisioner:v5.1.0-eks-1-31-10-master-29
9595
args:
9696
- --csi-address=$(ADDRESS)
9797
- --v=2
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# {{- if and (eq .Cluster.Provider "zalando-eks") (eq .Cluster.ConfigItems.eks_ip_family "ipv6") }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: aws-load-balancer-controller
6+
namespace: kube-system
7+
labels:
8+
application: kubernetes
9+
component: aws-load-balancer-controller
10+
spec:
11+
replicas: 2
12+
selector:
13+
matchLabels:
14+
deployment: aws-load-balancer-controller
15+
template:
16+
metadata:
17+
labels:
18+
application: kubernetes
19+
component: aws-load-balancer-controller
20+
deployment: aws-load-balancer-controller
21+
spec:
22+
containers:
23+
- args:
24+
- "--aws-region={{.Cluster.Region}}"
25+
- "--aws-vpc-id={{.Cluster.ConfigItems.vpc_id}}"
26+
- "--cluster-name={{.Cluster.Name}}"
27+
- --feature-gates=ServiceTypeLoadBalancerOnly=true
28+
- --webhook-cert-file=admission-controller.pem
29+
- --webhook-key-file=admission-controller-key.pem
30+
- --default-ssl-policy=ELBSecurityPolicy-TLS13-1-2-2021-06
31+
- --default-load-balancer-scheme=internet-facing
32+
- --default-target-type=ip
33+
image: container-registry.zalando.net/teapot/aws-load-balancer-controller:v2.12.0-main-2.patched
34+
livenessProbe:
35+
failureThreshold: 2
36+
httpGet:
37+
path: /healthz
38+
port: 61779
39+
scheme: HTTP
40+
initialDelaySeconds: 30
41+
timeoutSeconds: 10
42+
name: controller
43+
ports:
44+
- containerPort: 9443
45+
name: webhook-server
46+
protocol: TCP
47+
resources:
48+
limits:
49+
cpu: {{ .Cluster.ConfigItems.aws_load_balancer_controller_cpu }}
50+
memory: {{ .Cluster.ConfigItems.aws_load_balancer_controller_mem_max }}
51+
requests:
52+
cpu: {{ .Cluster.ConfigItems.aws_load_balancer_controller_cpu }}
53+
memory: {{ .Cluster.ConfigItems.aws_load_balancer_controller_mem_max }}
54+
securityContext:
55+
allowPrivilegeEscalation: false
56+
readOnlyRootFilesystem: true
57+
runAsNonRoot: true
58+
volumeMounts:
59+
- mountPath: /tmp/k8s-webhook-server/serving-certs
60+
name: cert
61+
readOnly: true
62+
priorityClassName: system-cluster-critical
63+
securityContext:
64+
fsGroup: 1337
65+
serviceAccountName: aws-load-balancer-controller
66+
terminationGracePeriodSeconds: 10
67+
affinity:
68+
podAntiAffinity:
69+
requiredDuringSchedulingIgnoredDuringExecution:
70+
- topologyKey: topology.kubernetes.io/zone
71+
labelSelector:
72+
matchLabels:
73+
deployment: aws-load-balancer-controller
74+
volumes:
75+
- name: cert
76+
secret:
77+
defaultMode: 420
78+
secretName: admission-controller-tls-certs
79+
# {{- end }}

0 commit comments

Comments
 (0)