@@ -8,23 +8,62 @@ locals {
88 namespace = local.helm_releases[index (local. helm_releases . * . id , " external-secrets" )].namespace
99 }
1010 external_secrets_values = << VALUES
11- # Environment variables to set on deployment pod
12- env:
13- AWS_REGION: ${ local . region }
14- AWS_DEFAULT_REGION: ${ local . region }
15- POLLER_INTERVAL_MILLISECONDS: 30000
16- # trace, debug, info, warn, error, fatal
17- LOG_LEVEL: warn
18- LOG_MESSAGE_KEY: 'msg'
19- METRICS_PORT: 3001
11+ crds:
12+ createClusterExternalSecret: false
13+ createClusterSecretStore: true # without setting it to true, certcontroller couldn't start: {"level":"debug","ts":1651041439.6815717,"logger":"controller-runtime.healthz","msg":"healthz check failed","checker":"crd-inject","error":"resource not ready: clustersecretstores.external-secrets.io"}
2014
21- serviceAccount:
22- annotations:
23- "eks.amazonaws.com/role-arn": ${ local . external_secrets . enabled ? module . aws_iam_external_secrets [0 ]. role_arn : " " }
15+ processClusterExternalSecret: false
16+ processClusterStore: false
2417
2518securityContext:
26- # Required for use of IRSA, see https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-technical-overview.html
27- fsGroup: 1000
19+ capabilities:
20+ drop:
21+ - ALL
22+ readOnlyRootFilesystem: true
23+ runAsNonRoot: true
24+ runAsUser: 1000
25+
26+ resources:
27+ requests:
28+ cpu: 100m
29+ memory: 128Mi
30+ limits:
31+ cpu: 200m
32+ memory: 128Mi
33+
34+ webhook:
35+ securityContext:
36+ capabilities:
37+ drop:
38+ - ALL
39+ readOnlyRootFilesystem: true
40+ runAsNonRoot: true
41+ runAsUser: 1000
42+
43+ resources:
44+ requests:
45+ cpu: 50m
46+ memory: 64Mi
47+ limits:
48+ cpu: 100m
49+ memory: 64Mi
50+
51+ certController:
52+ securityContext:
53+ capabilities:
54+ drop:
55+ - ALL
56+ readOnlyRootFilesystem: true
57+ runAsNonRoot: true
58+ runAsUser: 1000
59+
60+ resources:
61+ requests:
62+ cpu: 50m
63+ memory: 64Mi
64+ limits:
65+ cpu: 100m
66+ memory: 64Mi
2867VALUES
2968}
3069
@@ -56,6 +95,32 @@ module "external_secrets_namespace" {
5695 ]
5796 }
5897 },
98+ {
99+ name = " allow-webhooks"
100+ policy_types = [" Ingress" ]
101+ pod_selector = {
102+ match_expressions = {
103+ key = " app.kubernetes.io/name"
104+ operator = " In"
105+ values = [" ${ local . external_secrets . name } -webhook" ]
106+ }
107+ }
108+ ingress = {
109+ ports = [
110+ {
111+ port = " 9443"
112+ protocol = " TCP"
113+ }
114+ ]
115+ from = [
116+ {
117+ ip_block = {
118+ cidr = " 0.0.0.0/0"
119+ }
120+ }
121+ ]
122+ }
123+ },
59124 {
60125 name = " allow-egress"
61126 policy_types = [" Egress" ]
@@ -76,33 +141,6 @@ module "external_secrets_namespace" {
76141 ]
77142}
78143
79-
80- # tfsec:ignore:aws-iam-no-policy-wildcards
81- module "aws_iam_external_secrets" {
82- count = local. external_secrets . enabled ? 1 : 0
83-
84- source = " ../modules/aws-iam-eks-trusted"
85- name = " ${ local . name } -${ local . external_secrets . name } "
86- region = local. region
87- oidc_provider_arn = local. eks_oidc_provider_arn
88- policy = jsonencode ({
89- " Version" : " 2012-10-17" ,
90- " Statement" : [
91- {
92- " Effect" : " Allow" ,
93- " Action" : [
94- " ssm:GetParameter" ,
95- " secretsmanager:GetResourcePolicy" ,
96- " secretsmanager:GetSecretValue" ,
97- " secretsmanager:DescribeSecret" ,
98- " secretsmanager:ListSecretVersionIds"
99- ],
100- " Resource" : " *"
101- }
102- ]
103- })
104- }
105-
106144resource "helm_release" "external_secrets" {
107145 count = local. external_secrets . enabled ? 1 : 0
108146
0 commit comments