Open
Conversation
… 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.
Avoid adding duplicate entries to /etc/hosts on re-runs by checking if each zenko.local hostname already exists before appending.
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.
Contributor
Hello delthas,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Contributor
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
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.
88f103a to
72adb60
Compare
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).
72adb60 to
ba8d018
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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