feat: add gateway-api support#299
Conversation
28079c5 to
f84c000
Compare
|
Dell Sonic does actually work, but you need credentials to pull from r.metal-stack.io. |
|
Sadly I got the following error: I had the following overrides |
|
|
@Sven-Ric Would you mind taking a look at the network changes? |
|
It seems like the kind node always ends up in the default kind network on a clean first run. The kind network is read from .env, which is written by env.sh. However the Makefile reads .env before env.sh is invoked and the kind node network falls back to default. Because .env is persistent the bug is masked on all subsequent runs. On initial run: # docker inspect metal-control-plane-control-plane
[
{
<SNIP>
"NetworkSettings": {
<SNIP>
"Networks": {
"kind": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "6530b19e41b397d41d37f6a38d6b1bbd74c9ba2b7478df95f6a6270cc84c4d0e",
"EndpointID": "6d56f5f0fa83330b85e0b0ebbd04175a93d8586c48492c9b545beb7eeecce015",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"MacAddress": "12:98:42:c8:e4:ec",
"IPPrefixLen": 16,
"IPv6Gateway": "fc00:f853:ccd:e793::1",
"GlobalIPv6Address": "fc00:f853:ccd:e793::2",
"GlobalIPv6PrefixLen": 64,
"DNSNames": [
"metal-control-plane-control-plane",
"bd976835cec0"
]
}
}
},
"ImageManifestDescriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:21c46cf61fd45873f89e6a1bfcba4b7904dffa84c2bec88aeeca9a0409af4725",
"size": 743,
"platform": {
"architecture": "amd64",
"os": "linux"
}
}
}
]On all subsequent runs: # docker inspect metal-control-plane-control-plane
[
{
<SNIP>
"NetworkSettings": {
<SNIP>
"Networks": {
"mini_lab_internal": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "2734b8f942cae84d8693ecd43ab3bb9d5cd71905faf992fbfe5c3df17ddc376b",
"EndpointID": "62f8b2a6eb379bb65f13f6441a9249417fc9ce754218a29b699cd7511b393d29",
"Gateway": "172.42.0.1",
"IPAddress": "172.42.0.2",
"MacAddress": "66:e7:b9:9c:2e:39",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": [
"metal-control-plane-control-plane",
"5b12fbbedfdc"
]
}
}
},
"ImageManifestDescriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:21c46cf61fd45873f89e6a1bfcba4b7904dffa84c2bec88aeeca9a0409af4725",
"size": 743,
"platform": {
"architecture": "amd64",
"os": "linux"
}
}
}
] |
e502dc3 to
01fb3d1
Compare
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
01fb3d1 to
8075d54
Compare
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
8075d54 to
ffc4120
Compare
Gerrit91
left a comment
There was a problem hiding this comment.
PR looks good to me. Thanks for the effort!
Would like to read the migration path somewhere. I guess for most operators it is sufficient to deploy a Gateway controller and then set metal_control_plane_gateway_dns: "{{ metal_control_plane_ingress_dns }} and when we remove the old metal_control_plane_ingress_dns then they need to replace the old variable in their deployment repository?
Still required for Dex, Thanos, Gardener, PowerDNS
Dex should not be used anymore, let's remove the role in another PR.
| networking: | ||
| apiServerPort: 6443 | ||
| apiServerAddress: 0.0.0.0 | ||
| apiServerAddress: 172.42.0.1 |
There was a problem hiding this comment.
I think it would be nice to add a NOTEWORTHY section and mention that the docker network will get created now in the mini-lab.
| grpc \ | ||
| masterdata-api; do | ||
| masterdata-api \ | ||
| metal-api; do |
There was a problem hiding this comment.
Wasn't the grpc component used for metal-api gRPC already? What is the cert used for?
| - name: Deploy metal-control-plane nsq_namespace | ||
| kubernetes.core.k8s: | ||
| kind: Namespace | ||
| name: "{{ metal_control_plane_namespace }}" |
There was a problem hiding this comment.
Task can be dropped when running the prepare role before this one (it only contains the single task to create this namespace).
| wait: true | ||
| - name: Deploy Envoy GatewayClass |
There was a problem hiding this comment.
Maybe some line breaks could increase readability of this file (as common for all task definitions we have).
Description
Type: Loadbalancerservicesmini_lab_externaldocker networkWIPs
Link metal-roles pr branch to run ci in pull requestmetal-roles PR is mergedUsed AI-Tools ✨
Closes: #297
Requires: metal-stack/helm-charts#156 and metal-stack/metal-roles#594
Tested configurations