Skip to content

Commit 3c1dcbd

Browse files
authored
feat: viz toggle (#7)
* feat: viz toggle * chore: fmt * chore: updated docs
1 parent 63f7f0d commit 3c1dcbd

File tree

6 files changed

+48
-19
lines changed

6 files changed

+48
-19
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ No modules.
110110
| <a name="input_viz_cert_renew_before"></a> [viz\_cert\_renew\_before](#input\_viz\_cert\_renew\_before) | Viz TLS cert renew before eg: 1h0m0s | `string` | `"24h0m0s"` | no |
111111
| <a name="input_viz_enable_pod_anti_affinity"></a> [viz\_enable\_pod\_anti\_affinity](#input\_viz\_enable\_pod\_anti\_affinity) | Viz enable podAntiAffinity | `bool` | `false` | no |
112112
| <a name="input_viz_enable_pod_distruption_budget"></a> [viz\_enable\_pod\_distruption\_budget](#input\_viz\_enable\_pod\_distruption\_budget) | Viz enable podDisruptionBudget | `bool` | `false` | no |
113+
| <a name="input_viz_enabled"></a> [viz\_enabled](#input\_viz\_enabled) | Toggle Linkerd Viz deployment | `bool` | `true` | no |
113114
| <a name="input_viz_helm_version"></a> [viz\_helm\_version](#input\_viz\_helm\_version) | Viz helm version | `string` | `"30.12.10"` | no |
114115
| <a name="input_viz_namespace"></a> [viz\_namespace](#input\_viz\_namespace) | Viz namespace | `string` | `"linkerd-viz"` | no |
115116
| <a name="input_webhook_ca_validity"></a> [webhook\_ca\_validity](#input\_webhook\_ca\_validity) | Webhook Issuer CA validity in hours eg: 175200 for 20 years | `string` | `"175200"` | no |

TODO.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# TODO
2-
1. terraform-docs
3-
2. automated lint
4-
3. publish to tf registry
2+
1. ~~terraform-docs~~
3+
2. ~~automated lint~~
4+
3. ~~publish to tf registry~~
55
4. cni toggle
6-
5. viz toggle
6+
5. ~~viz toggle~~
77
6. jaeger toggle
88
7. viz ingress toggle
99
8. modular self-sign tls commonname

main.tf

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,22 @@ data "kubernetes_secret" "linkerd_sp_validator_certificate" {
4646
}
4747

4848
data "kubernetes_secret" "linkerd_viz_certificate" {
49+
count = var.viz_enabled == true ? 1 : 0
50+
4951
metadata {
50-
name = kubernetes_manifest.linkerd_viz_certificate.manifest.spec.secretName
51-
namespace = kubernetes_namespace.linkerd_viz.id
52+
name = kubernetes_manifest.linkerd_viz_certificate[0].manifest.spec.secretName
53+
namespace = kubernetes_namespace.linkerd_viz[0].id
5254
}
5355

5456
depends_on = [time_sleep.wait_viz_certificate_provisioning]
5557
}
5658

5759
data "kubernetes_secret" "linkerd_tap_injector_certificate" {
60+
count = var.viz_enabled == true ? 1 : 0
61+
5862
metadata {
59-
name = kubernetes_manifest.linkerd_tap_injector_certificate.manifest.spec.secretName
60-
namespace = kubernetes_namespace.linkerd_viz.id
63+
name = kubernetes_manifest.linkerd_tap_injector_certificate[0].manifest.spec.secretName
64+
namespace = kubernetes_namespace.linkerd_viz[0].id
6165
}
6266

6367
depends_on = [time_sleep.wait_viz_certificate_provisioning]
@@ -153,11 +157,13 @@ resource "helm_release" "linkerd_control_plane" {
153157

154158
## Linkerd Viz
155159
resource "helm_release" "linkerd_viz" {
160+
count = var.viz_enabled == true ? 1 : 0
161+
156162
name = "linkerd-viz"
157163
repository = local.linkerd_repository[var.linkerd_repository]
158164
chart = "linkerd-viz"
159165
version = var.viz_helm_version
160-
namespace = kubernetes_namespace.linkerd_viz.id
166+
namespace = kubernetes_namespace.linkerd_viz[0].id
161167
create_namespace = false
162168

163169
values = coalesce([
@@ -187,12 +193,12 @@ resource "helm_release" "linkerd_viz" {
187193

188194
set_sensitive {
189195
name = "tap.caBundle"
190-
value = data.kubernetes_secret.linkerd_viz_certificate.data["ca.crt"]
196+
value = data.kubernetes_secret.linkerd_viz_certificate[0].data["ca.crt"]
191197
}
192198

193199
set_sensitive {
194200
name = "tapInjector.caBundle"
195-
value = data.kubernetes_secret.linkerd_tap_injector_certificate.data["ca.crt"]
201+
value = data.kubernetes_secret.linkerd_tap_injector_certificate[0].data["ca.crt"]
196202
}
197203

198204
set {

namespaces.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ resource "kubernetes_namespace" "linkerd" {
1616
}
1717

1818
resource "kubernetes_namespace" "linkerd_viz" {
19+
count = var.viz_enabled == true ? 1 : 0
20+
1921
metadata {
2022
name = var.viz_namespace
2123
labels = {

tls-viz.tf

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
resource "tls_private_key" "linkerd_viz_private_key" {
2+
count = var.viz_enabled == true ? 1 : 0
3+
24
algorithm = "ECDSA"
35
ecdsa_curve = "P256"
46
}
57

68
resource "tls_self_signed_cert" "linkerd_viz_root_ca" {
7-
private_key_pem = tls_private_key.linkerd_viz_private_key.private_key_pem
9+
count = var.viz_enabled == true ? 1 : 0
10+
11+
private_key_pem = tls_private_key.linkerd_viz_private_key[0].private_key_pem
812
is_ca_certificate = true
913
set_subject_key_id = true
1014
validity_period_hours = var.viz_ca_validity
@@ -21,44 +25,50 @@ resource "tls_self_signed_cert" "linkerd_viz_root_ca" {
2125
}
2226

2327
resource "kubernetes_secret" "linkerd_viz_root_ca" {
28+
count = var.viz_enabled == true ? 1 : 0
29+
2430
metadata {
2531
name = "webhook-issuer-tls"
26-
namespace = kubernetes_namespace.linkerd_viz.id
32+
namespace = kubernetes_namespace.linkerd_viz[0].id
2733
}
2834

2935
data = {
30-
"tls.crt" = tls_self_signed_cert.linkerd_viz_root_ca.cert_pem
31-
"tls.key" = tls_self_signed_cert.linkerd_viz_root_ca.private_key_pem
36+
"tls.crt" = tls_self_signed_cert.linkerd_viz_root_ca[0].cert_pem
37+
"tls.key" = tls_self_signed_cert.linkerd_viz_root_ca[0].private_key_pem
3238
}
3339

3440
type = "kubernetes.io/tls"
3541
}
3642

3743
resource "kubernetes_manifest" "linkerd_viz_issuer" {
44+
count = var.viz_enabled == true ? 1 : 0
45+
3846
manifest = {
3947
"apiVersion" = "cert-manager.io/v1"
4048
"kind" = "Issuer"
4149
"metadata" = {
4250
"name" = "webhook-issuer"
43-
"namespace" = "${kubernetes_namespace.linkerd_viz.id}"
51+
"namespace" = "${kubernetes_namespace.linkerd_viz[0].id}"
4452
}
4553
"spec" = {
4654
"ca" = {
47-
"secretName" : "${kubernetes_secret.linkerd_viz_root_ca.metadata[0].name}"
55+
"secretName" : "${kubernetes_secret.linkerd_viz_root_ca[0].metadata[0].name}"
4856
}
4957
}
5058
}
5159
}
5260

5361
resource "kubernetes_manifest" "linkerd_viz_certificate" {
62+
count = var.viz_enabled == true ? 1 : 0
63+
5464
computed_fields = ["spec.duration", "spec.renewBefore", "spec.isCA"]
5565

5666
manifest = {
5767
"apiVersion" = "cert-manager.io/v1"
5868
"kind" = "Certificate"
5969
"metadata" = {
6070
"name" = "tap"
61-
"namespace" = "${kubernetes_namespace.linkerd_viz.id}"
71+
"namespace" = "${kubernetes_namespace.linkerd_viz[0].id}"
6272
}
6373
"spec" = {
6474
"secretName" = "tap-k8s-tls"
@@ -86,14 +96,16 @@ resource "kubernetes_manifest" "linkerd_viz_certificate" {
8696
}
8797

8898
resource "kubernetes_manifest" "linkerd_tap_injector_certificate" {
99+
count = var.viz_enabled == true ? 1 : 0
100+
89101
computed_fields = ["spec.duration", "spec.renewBefore", "spec.isCA"]
90102

91103
manifest = {
92104
"apiVersion" = "cert-manager.io/v1"
93105
"kind" = "Certificate"
94106
"metadata" = {
95107
"name" = "linkerd-tap-injector"
96-
"namespace" = "${kubernetes_namespace.linkerd_viz.id}"
108+
"namespace" = "${kubernetes_namespace.linkerd_viz[0].id}"
97109
}
98110
"spec" = {
99111
"secretName" = "tap-injector-k8s-tls"
@@ -121,6 +133,8 @@ resource "kubernetes_manifest" "linkerd_tap_injector_certificate" {
121133
}
122134

123135
resource "time_sleep" "wait_viz_certificate_provisioning" {
136+
count = var.viz_enabled == true ? 1 : 0
137+
124138
depends_on = [
125139
kubernetes_manifest.linkerd_tap_injector_certificate,
126140
kubernetes_manifest.linkerd_viz_certificate

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ variable "viz_cert_renew_before" {
144144
default = "24h0m0s"
145145
}
146146

147+
variable "viz_enabled" {
148+
description = "Toggle Linkerd Viz deployment"
149+
type = bool
150+
default = true
151+
}
152+
147153
variable "crds_helm_vesion" {
148154
description = "Crds helm version"
149155
type = string

0 commit comments

Comments
 (0)