Skip to content

Commit e3d7f53

Browse files
authored
enh: switch from aws-calico helm chart to tigera operator helm chart (#288)
1 parent 4fef697 commit e3d7f53

File tree

7 files changed

+135
-57
lines changed

7 files changed

+135
-57
lines changed

docs/FAQ.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,3 +291,16 @@ alertmanager:
291291
### If you want to receive alerts **via Slack**, then do next:
292292
* See [this instruction](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack) and generate Slack Incoming Webhook
293293
* Set `alertmanager_slack_webhook`, `alertmanager_slack_channel` variables in [AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/home?region=us-east-1#!/home) secret with the pattern `/${local.name_wo_region}/infra/layer2-k8s`.
294+
295+
## Deleting Tigera-operator
296+
1. Run
297+
```bash
298+
kubectl delete installations.operator.tigera.io default
299+
```
300+
2. Set `enabled: false` for `id: tigera-operator` in the file **helm-releases.yaml**
301+
3. Run `terraform apply` in the layer2-k8s folder
302+
4. Run
303+
```bash
304+
kubectl delete ns calico-apiserver calico-system
305+
```
306+
5. Restart all nodes

terraform/layer2-k8s/.terraform.lock.hcl

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

terraform/layer2-k8s/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
| <a name="provider_http"></a> [http](#provider\_http) | 2.1.0 |
2020
| <a name="provider_kubectl"></a> [kubectl](#provider\_kubectl) | 1.14.0 |
2121
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | 2.10.0 |
22-
| <a name="provider_random"></a> [random](#provider\_random) | 3.1.2 |
22+
| <a name="provider_random"></a> [random](#provider\_random) | 3.1.3 |
2323
| <a name="provider_terraform"></a> [terraform](#provider\_terraform) | n/a |
2424

2525
## Modules
@@ -51,6 +51,7 @@
5151
| <a name="module_kube_prometheus_stack_namespace"></a> [kube\_prometheus\_stack\_namespace](#module\_kube\_prometheus\_stack\_namespace) | ../modules/kubernetes-namespace | n/a |
5252
| <a name="module_loki_namespace"></a> [loki\_namespace](#module\_loki\_namespace) | ../modules/kubernetes-namespace | n/a |
5353
| <a name="module_reloader_namespace"></a> [reloader\_namespace](#module\_reloader\_namespace) | ../modules/kubernetes-namespace | n/a |
54+
| <a name="module_tigera_operator_namespace"></a> [tigera\_operator\_namespace](#module\_tigera\_operator\_namespace) | ../modules/kubernetes-namespace | n/a |
5455
| <a name="module_victoria_metrics_k8s_stack_namespace"></a> [victoria\_metrics\_k8s\_stack\_namespace](#module\_victoria\_metrics\_k8s\_stack\_namespace) | ../modules/kubernetes-namespace | n/a |
5556

5657
## Resources
@@ -63,7 +64,6 @@
6364
| [aws_s3_bucket_public_access_block.gitlab_runner_cache_public_access_block](https://registry.terraform.io/providers/aws/4.10.0/docs/resources/s3_bucket_public_access_block) | resource |
6465
| [helm_release.aws_loadbalancer_controller](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
6566
| [helm_release.aws_node_termination_handler](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
66-
| [helm_release.calico_daemonset](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
6767
| [helm_release.cert_manager](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
6868
| [helm_release.certificate](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
6969
| [helm_release.cluster_autoscaler](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
@@ -80,7 +80,9 @@
8080
| [helm_release.loki_stack](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
8181
| [helm_release.prometheus_operator](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
8282
| [helm_release.reloader](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
83+
| [helm_release.tigera_operator](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
8384
| [helm_release.victoria_metrics_k8s_stack](https://registry.terraform.io/providers/helm/2.5.1/docs/resources/release) | resource |
85+
| [kubectl_manifest.calico_felix](https://registry.terraform.io/providers/gavinbunney/kubectl/1.14.0/docs/resources/manifest) | resource |
8486
| [kubectl_manifest.istio_prometheus_service_monitor_cp](https://registry.terraform.io/providers/gavinbunney/kubectl/1.14.0/docs/resources/manifest) | resource |
8587
| [kubectl_manifest.istio_prometheus_service_monitor_dp](https://registry.terraform.io/providers/gavinbunney/kubectl/1.14.0/docs/resources/manifest) | resource |
8688
| [kubectl_manifest.kube_prometheus_stack_operator_crds](https://registry.terraform.io/providers/gavinbunney/kubectl/1.14.0/docs/resources/manifest) | resource |

terraform/layer2-k8s/eks-calico.tf

Lines changed: 0 additions & 33 deletions
This file was deleted.
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
locals {
2+
tigera_operator = {
3+
name = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].id
4+
enabled = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].enabled
5+
chart = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].chart
6+
repository = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].repository
7+
chart_version = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].chart_version
8+
namespace = local.helm_releases[index(local.helm_releases.*.id, "tigera-operator")].namespace
9+
}
10+
11+
tigera_operator_values = <<VALUES
12+
installation:
13+
kubernetesProvider: EKS
14+
VALUES
15+
}
16+
17+
#tfsec:ignore:kubernetes-network-no-public-egress tfsec:ignore:kubernetes-network-no-public-ingress
18+
module "tigera_operator_namespace" {
19+
count = local.tigera_operator.enabled ? 1 : 0
20+
21+
source = "../modules/kubernetes-namespace"
22+
name = local.tigera_operator.name
23+
network_policies = [
24+
{
25+
name = "default-deny"
26+
policy_types = ["Ingress", "Egress"]
27+
pod_selector = {}
28+
},
29+
{
30+
name = "allow-this-namespace"
31+
policy_types = ["Ingress"]
32+
pod_selector = {}
33+
ingress = {
34+
from = [
35+
{
36+
namespace_selector = {
37+
match_labels = {
38+
name = local.tigera_operator.namespace
39+
}
40+
}
41+
}
42+
]
43+
}
44+
},
45+
{
46+
name = "allow-egress"
47+
policy_types = ["Egress"]
48+
pod_selector = {}
49+
egress = {
50+
to = [
51+
{
52+
ip_block = {
53+
cidr = "0.0.0.0/0"
54+
except = [
55+
"169.254.169.254/32"
56+
]
57+
}
58+
}
59+
]
60+
}
61+
}
62+
]
63+
}
64+
65+
resource "kubectl_manifest" "calico_felix" {
66+
count = local.tigera_operator.enabled ? 1 : 0
67+
68+
yaml_body = <<YAML
69+
apiVersion: crd.projectcalico.org/v1
70+
kind: FelixConfiguration
71+
metadata:
72+
name: default
73+
spec:
74+
logSeverityScreen: Warning
75+
usageReportingEnabled: false
76+
YAML
77+
78+
depends_on = [
79+
helm_release.tigera_operator
80+
]
81+
}
82+
83+
resource "helm_release" "tigera_operator" {
84+
count = local.tigera_operator.enabled ? 1 : 0
85+
86+
name = local.tigera_operator.name
87+
chart = local.tigera_operator.chart
88+
repository = local.tigera_operator.repository
89+
version = local.tigera_operator.chart_version
90+
namespace = module.tigera_operator_namespace[count.index].name
91+
max_history = var.helm_release_history_size
92+
93+
values = [
94+
local.tigera_operator_values
95+
]
96+
}

terraform/layer2-k8s/eks-victoria-metrics-k8s-stack.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ resource "helm_release" "victoria_metrics_k8s_stack" {
532532

533533
depends_on = [
534534
kubectl_manifest.kube_prometheus_stack_operator_crds,
535-
helm_release.calico_daemonset,
535+
helm_release.tigera_operator,
536536
helm_release.ingress_nginx
537537
]
538538

terraform/layer2-k8s/helm-releases.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@ releases:
1111
repository: https://aws.github.io/eks-charts
1212
chart_version: 0.18.1
1313
namespace: aws-node-termination-handler
14-
- id: aws-calico
15-
enabled: true
16-
chart: aws-calico
17-
repository: https://aws.github.io/eks-charts
18-
chart_version: 0.3.11
19-
namespace: kube-system
2014
- id: cert-manager
2115
enabled: false
2216
chart: cert-manager
@@ -90,7 +84,7 @@ releases:
9084
chart_version: 1.49.0
9185
namespace: kiali
9286
- id: kube-prometheus-stack
93-
enabled: false
87+
enabled: true
9488
chart: kube-prometheus-stack
9589
repository: https://prometheus-community.github.io/helm-charts
9690
chart_version: 34.10.0
@@ -107,8 +101,14 @@ releases:
107101
repository: https://stakater.github.io/stakater-charts
108102
chart_version: 0.0.110
109103
namespace: reloader
110-
- id: victoria-metrics-k8s-stack
104+
- id: tigera-operator
111105
enabled: true
106+
chart: tigera-operator
107+
repository: https://projectcalico.docs.tigera.io/charts
108+
chart_version: v3.23.0
109+
namespace: tigera-operator
110+
- id: victoria-metrics-k8s-stack
111+
enabled: false
112112
chart: victoria-metrics-k8s-stack
113113
repository: https://victoriametrics.github.io/helm-charts
114114
chart_version: 0.8.1

0 commit comments

Comments
 (0)