Conversation
Hello delthas,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
72adb60 to
ba8d018
Compare
There was a problem hiding this comment.
Okay yeah, on the latest merged pr, I created this file that handles hosts (amongst other things) : https://github.com/scality/Zenko/blob/development/2.14/.github/scripts/end2end/configure-e2e-endpoints.sh
Might need a rebase and some sync between the 2
ConflictThere is a conflict between your branch Please resolve the conflict on the feature branch ( git fetch && \
git checkout origin/improvement/ZENKO-5243/local-env-support && \
git merge origin/development/2.14Resolve merge conflicts and commit git push origin HEAD:improvement/ZENKO-5243/local-env-support |
… scope When running kind with rootless podman from a graphical terminal, cgroup controllers may not be delegated to the process's cgroup. Detect this and automatically wrap kind create in a systemd scope with Delegate=yes.
The kind local registry was only partially implemented (missing containerd certs.d configuration on nodes) and was never used by any script. All images are loaded via kind load docker-image. Removing it also fixes a podman networking incompatibility.
When ../zenko-operator exists, symlink it instead of cloning from GitHub. This avoids creating a nested git repo and allows using a local working copy for development. Also clean up the operator image after loading it into kind.
Use $PWD/artifacts instead of /artifacts for kind volume mounts so the setup works outside CI where /artifacts does not exist.
Podman's aardvark-dns (used as the default DNS inside KinD nodes) fails to forward external DNS queries reliably. CoreDNS forwards to /etc/resolv.conf which points to aardvark-dns, causing SERVFAIL for external domains like ghcr.io. When HOST_DNS is set, patch-coredns.sh uses it as the CoreDNS forward target instead of /etc/resolv.conf. The devcontainer setup.sh detects the host nameserver and exports HOST_DNS.
Use a scheme variable based on ENABLE_KEYCLOAK_HTTPS instead of hardcoding https. Use 127.0.0.1 instead of localhost to avoid curl resolving to IPv6 ::1, which kind does not bind on.
Podman injects "dns.podman" into node resolv.conf, which leaks into pod DNS config. CoreDNS cannot resolve this domain, causing 8s timeouts per lookup and killing pods that rely on fast DNS during init (e.g. zookeeper).
ba8d018 to
305067f
Compare
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
Summary
The end-to-end scripts were designed to run in GitHub Codespaces (Docker-in-Docker).
Running them locally with rootless podman on Linux exposed several issues. This PR
fixes them so the full Zenko stack can be deployed and tested on a local machine.
DNS timeouts from podman search domains
Podman injects
search dns.podmaninto kind node resolv.conf. CoreDNS can't resolvethis domain, adding an 8-second timeout to every DNS lookup. This killed pods that
rely on fast DNS during init (e.g. ZooKeeper exceeded its liveness probe). Fixed by
adding a
config.yamlfor kind withnetworking: { dnsSearch: [] }, which stripsall search clauses.
curl hangs to localhost
get_token()incommon.shhardcodedhttps://localhost. Two issues: curl resolveslocalhostto::1(IPv6) first but kind only binds on IPv4, and the scheme washardcoded to
httpsbut keycloak ingress useshttpwhenENABLE_KEYCLOAK_HTTPS=false.Fixed with a scheme variable and
127.0.0.1.CoreDNS can't resolve host DNS
In podman environments, the host DNS server address differs from Docker's default
(
172.17.0.1). AddedHOST_DNSoverride support inpatch-coredns.shso itreads the nameserver from
/etc/resolv.confwhen running outside Docker.Other changes
VOLUME_ROOTfor local development (no/mntin local environments)bootstrap-kind.shzenko-operatorcheckout instead of always fetching from GitHub/etc/hostsentries idempotent (check before appending)/etc/hostspre-setupIssue: ZENKO-5243