Skip to content

Commit e62101e

Browse files
authored
Gatekeeper Deployment (#358)
Added Gatekeeper Deployment MP and CP Cluster
1 parent a588ce6 commit e62101e

File tree

12 files changed

+125
-2
lines changed

12 files changed

+125
-2
lines changed

modules/addons/gatekeeper/main.tf

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
provider "helm" {
2+
kubernetes {
3+
host = var.k8s_host
4+
cluster_ca_certificate = base64decode(var.k8s_cluster_ca_certificate)
5+
token = var.k8s_client_token
6+
}
7+
}
8+
9+
provider "kubectl" {
10+
host = var.k8s_host
11+
cluster_ca_certificate = base64decode(var.k8s_cluster_ca_certificate)
12+
token = var.k8s_client_token
13+
load_config_file = false
14+
}
15+
16+
provider "kubernetes" {
17+
host = var.k8s_host
18+
cluster_ca_certificate = base64decode(var.k8s_cluster_ca_certificate)
19+
token = var.k8s_client_token
20+
}
21+
22+
# Gatekeeper Deployment using helm chart
23+
resource "helm_release" "gatekeeper" {
24+
count = var.gatekeeper_enabled == true ? 1 : 0
25+
name = "gatekeeper"
26+
repository = "https://open-policy-agent.github.io/gatekeeper/charts"
27+
chart = "gatekeeper"
28+
version = var.gatekeeper_version
29+
create_namespace = true
30+
namespace = "gatekeeper-system"
31+
timeout = 240
32+
33+
values = [
34+
file("${path.module}/manifests/gatekeeper-values.yaml")
35+
]
36+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
replicas: 1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
terraform {
2+
required_providers {
3+
kubectl = {
4+
source = "alekc/kubectl"
5+
version = "2.0.3"
6+
}
7+
}
8+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
variable "cluster_name" {
2+
}
3+
4+
variable "k8s_host" {
5+
}
6+
7+
variable "k8s_cluster_ca_certificate" {
8+
}
9+
10+
variable "k8s_client_token" {
11+
}
12+
13+
variable "gatekeeper_enabled" {
14+
}
15+
16+
variable "gatekeeper_version" {
17+
default = "3.15.0"
18+
}

modules/tsb/mp/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,4 @@ data "kubernetes_service" "tsb" {
130130
}
131131
depends_on = [time_sleep.wait_240_seconds]
132132
}
133+

modules/tsb/mp/variables.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,3 @@ variable "es_cacert" {
6666

6767

6868

69-

terraform-advanced.tfvars.json.sample

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
},
2020
"tsb-monitoring": {
2121
"enabled": true
22+
},
23+
"gatekeeper": {
24+
"enabled" : true
2225
}
2326
}
2427
}
@@ -41,6 +44,9 @@
4144
},
4245
"tsb-monitoring": {
4346
"enabled": true
47+
},
48+
"gatekeeper": {
49+
"enabled" : true
4450
}
4551
}
4652
}
@@ -63,6 +69,9 @@
6369
},
6470
"tsb-monitoring": {
6571
"enabled": true
72+
},
73+
"gatekeeper": {
74+
"enabled" : true
6675
}
6776
}
6877
}

terraform-basic.tfvars.json.sample

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
"addons": {
1010
"argocd": {
1111
"enabled": true
12+
},
13+
"gatekeeper": {
14+
"enabled" : true
1215
}
1316
}
1417
}
@@ -22,6 +25,9 @@
2225
"addons": {
2326
"argocd": {
2427
"enabled": true
28+
},
29+
"gatekeeper": {
30+
"enabled": true
2531
}
2632
}
2733
}
@@ -35,6 +41,9 @@
3541
"addons": {
3642
"argocd": {
3743
"enabled": true
44+
},
45+
"gatekeeper": {
46+
"enabled": true
3847
}
3948
}
4049
}

tsb/cp/main.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ module "ratelimit" {
3737
enabled = var.ratelimit_enabled
3838
}
3939

40+
module "gatekeeper" {
41+
source = "../../modules/addons/gatekeeper"
42+
cluster_name = data.terraform_remote_state.infra.outputs.cluster_name
43+
k8s_host = data.terraform_remote_state.infra.outputs.host
44+
k8s_cluster_ca_certificate = data.terraform_remote_state.infra.outputs.cluster_ca_certificate
45+
k8s_client_token = data.terraform_remote_state.k8s_auth.outputs.token
46+
gatekeeper_enabled = local.cluster.tetrate.management_plane ? false : local.cluster.addons.gatekeeper
47+
}
48+
4049
module "tsb_cp" {
4150
source = "../../modules/tsb/cp"
4251
cloud = local.cluster.cloud

tsb/cp/variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ variable "cluster" {
99
control_plane = optional(bool)
1010
management_plane = optional(bool)
1111
})
12+
addons = object({
13+
gatekeeper = object({
14+
enabled = optional(bool)
15+
})
16+
})
1217
version = optional(string)
1318
workspace = string
1419
})
@@ -21,6 +26,9 @@ locals {
2126
management_plane = false
2227
}
2328
version = "1.27"
29+
addons = {
30+
gatekeeper = false
31+
}
2432
}
2533
cluster = {
2634
cloud = var.cluster.cloud
@@ -33,6 +41,10 @@ locals {
3341
}
3442
version = coalesce(var.cluster.version, local.cluster_defaults.version)
3543
workspace = var.cluster.workspace
44+
addons = {
45+
gatekeeper = coalesce(var.cluster.addons.gatekeeper.enabled,local.cluster_defaults.addons.gatekeeper)
46+
}
47+
3648
}
3749
}
3850

0 commit comments

Comments
 (0)