Skip to content

Commit 5007457

Browse files
committed
salt: own ingress resources when upgrading from 129
1 parent 77e4481 commit 5007457

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed

buildchain/buildchain/salt_tree.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ def task(self) -> types.TaskDict:
442442
Path("salt/metalk8s/addons/nginx-ingress/deployed/namespace.sls"),
443443
Path("salt/metalk8s/addons/nginx-ingress/deployed/tls-secret.sls"),
444444
Path("salt/metalk8s/addons/nginx-ingress/deployed/service-configuration.sls"),
445+
Path("salt/metalk8s/addons/nginx-ingress/deployed/update-metadata.sls"),
445446
Path("salt/metalk8s/addons/nginx-ingress/deployed/config-map.sls"),
446447
Path("salt/metalk8s/addons/nginx-ingress/config/ingress-controller.yaml.j2"),
447448
Path("salt/metalk8s/addons/nginx-ingress/deployed/dashboards.sls"),
@@ -464,6 +465,9 @@ def task(self) -> types.TaskDict:
464465
"ingress-controller.yaml.j2",
465466
),
466467
Path("salt/metalk8s/addons/nginx-ingress-control-plane/deployed/tls-secret.sls"),
468+
Path(
469+
"salt/metalk8s/addons/nginx-ingress-control-plane/deployed/update-metadata.sls"
470+
),
467471
Path("salt/metalk8s/backup/certs/ca.sls"),
468472
Path("salt/metalk8s/backup/certs/server.sls"),
469473
Path("salt/metalk8s/backup/configured.sls"),

salt/metalk8s/addons/nginx-ingress-control-plane/deployed/init.sls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ include:
22
- metalk8s.addons.nginx-operator.deployed
33
- metalk8s.addons.nginx-ingress.deployed.namespace
44
- .tls-secret
5+
- .update-metadata
56
- .chart
67
- .service-configuration
78
- .config-map
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# this state needs to be removed in MetalK8S 131.0
2+
{%- set namespace_exists = salt.metalk8s_kubernetes.object_exists(
3+
kind="DaemonSet", apiVersion="v1", name="ingress-nginx-control-plane", namespace="ingress-nginx-control-plane") %}
4+
{%- if namespace_exists %}
5+
6+
include:
7+
- .chart
8+
9+
{%- set ingress_nginx_cp_objects = [
10+
{ "kind": "ServiceAccount" },
11+
{ "kind": "ClusterRole", "apiVersion": "rbac.authorization.k8s.io/v1" },
12+
{ "kind": "ClusterRoleBinding", "apiVersion": "rbac.authorization.k8s.io/v1" },
13+
{ "kind": "Role", "apiVersion": "rbac.authorization.k8s.io/v1" },
14+
{ "kind": "RoleBinding", "apiVersion": "rbac.authorization.k8s.io/v1" },
15+
{ "kind": "Service", "name": "ingress-nginx-control-plane-controller-metrics" },
16+
{ "kind": "Service", "name": "ingress-nginx-control-plane-controller" },
17+
{ "kind": "DaemonSet", "name": "ingress-nginx-control-plane-controller" },
18+
{ "kind": "IngressClass", "apiVersion": "networking.k8s.io/v1", "name": "nginx-control-plane" },
19+
{ "kind": "ServiceMonitor", "apiVersion": "monitoring.coreos.com/v1", "name": "ingress-nginx-control-plane-controller" },
20+
] %}
21+
22+
{%- for obj in ingress_nginx_cp_objects %}
23+
24+
{%- do obj.setdefault("name", "ingress-nginx-control-plane") %}
25+
{%- do obj.setdefault("apiVersion", "v1") %}
26+
27+
Update metadata for {{ obj["kind"] }}:{{ obj["name"] }}
28+
metalk8s_kubernetes.object_updated:
29+
- name: {{ obj["name"] }}
30+
- kind: {{ obj["kind"] }}
31+
- apiVersion: {{ obj["apiVersion"] }}
32+
- namespace: metalk8s-ingress
33+
- patch:
34+
metadata:
35+
labels:
36+
app.kubernetes.io/managed-by: Helm
37+
annotations:
38+
meta.helm.sh/release-name: ingress-nginx-control-plane
39+
meta.helm.sh/release-namespace: metalk8s-ingress
40+
- require_in:
41+
- sls: metalk8s.addons.nginx-ingress-control-plane.deployed.chart
42+
43+
{%- endfor %}
44+
{%- endif %}

salt/metalk8s/addons/nginx-ingress/deployed/init.sls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ include:
22
- metalk8s.addons.nginx-operator.deployed
33
- .namespace
44
- .tls-secret
5+
- .update-metadata
56
- .chart
67
- metalk8s.addons.prometheus-operator.deployed.namespace
78
- .dashboards
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# this state needs to be removed in MetalK8S 131.0
2+
{%- set namespace_exists = salt.metalk8s_kubernetes.object_exists(
3+
kind="DaemonSet", apiVersion="v1", name="ingress-nginx", namespace="metalk8s-ingress") %}
4+
{%- if namespace_exists %}
5+
6+
include:
7+
- .chart
8+
9+
{%- set ingress_nginx_objects = [
10+
{ "kind": "ServiceAccount" },
11+
{ "kind": "ClusterRole", "apiVersion": "rbac.authorization.k8s.io/v1" },
12+
{ "kind": "ClusterRoleBinding", "apiVersion": "rbac.authorization.k8s.io/v1" },
13+
{ "kind": "Role", "apiVersion": "rbac.authorization.k8s.io/v1" },
14+
{ "kind": "RoleBinding", "apiVersion": "rbac.authorization.k8s.io/v1" },
15+
{ "kind": "Service", "name": "ingress-nginx-controller-metrics" },
16+
{ "kind": "Service", "name": "ingress-nginx-controller" },
17+
{ "kind": "DaemonSet", "name": "ingress-nginx-controller" },
18+
{ "kind": "IngressClass", "apiVersion": "networking.k8s.io/v1", "name": "nginx" },
19+
{ "kind": "ServiceMonitor", "apiVersion": "monitoring.coreos.com/v1", "name": "ingress-nginx-controller" },
20+
] %}
21+
22+
{%- for obj in ingress_nginx_objects %}
23+
24+
{%- do obj.setdefault("name", "ingress-nginx") %}
25+
{%- do obj.setdefault("apiVersion", "v1") %}
26+
27+
Update metadata for {{ obj["kind"] }}:{{ obj["name"] }}
28+
metalk8s_kubernetes.object_updated:
29+
- name: {{ obj["name"] }}
30+
- kind: {{ obj["kind"] }}
31+
- apiVersion: {{ obj["apiVersion"] }}
32+
- namespace: metalk8s-ingress
33+
- patch:
34+
metadata:
35+
labels:
36+
app.kubernetes.io/managed-by: Helm
37+
annotations:
38+
meta.helm.sh/release-name: ingress-nginx
39+
meta.helm.sh/release-namespace: metalk8s-ingress
40+
- require_in:
41+
- sls: metalk8s.addons.nginx-ingress.deployed.chart
42+
43+
{%- endfor %}
44+
{%- endif %}

0 commit comments

Comments
 (0)