Drone CI-Containers on RL9 Arm Runner cannot resolve DNS #16

Closed
opened 2024-02-05 22:16:39 +01:00 by leon · 20 comments
Owner

Currently, containers from the runner on dev.komu.boo cannot resolve FQDNs, which leads to failed pipelines, since important components cannot be downloaded.

Currently, containers from the runner on dev.komu.boo cannot resolve FQDNs, which leads to failed pipelines, since important components cannot be downloaded.
leon self-assigned this 2024-02-05 22:16:39 +01:00
leon added this to the Issue Board project 2024-02-05 22:16:39 +01:00
leon added the
Kind
Bug
Status
Planned
Priority
High
Domain
komu.boo
labels 2024-02-05 22:16:55 +01:00
leon added spent time 15 minutes 2024-02-05 22:17:24 +01:00
leon started working 2024-02-05 22:17:54 +01:00
leon worked for 10 minutes 55 seconds 2024-02-05 22:28:49 +01:00
leon started working 2024-02-05 22:33:07 +01:00
leon worked for 23 hours 37 minutes 2024-02-06 22:10:31 +01:00
leon deleted spent time 2024-02-06 22:10:35 +01:00
- 23 hours 37 minutes
Owner

Interessante Erkenntnis: das scheint ein image-Problem zu sein:

Mit dem rust image hab ich auch auf amd64 unter RL9 DNS-Probleme, wenn ich jedoch zb. debian:latest nehme und mal einen nslookup mache, dann ist das kein problem, owbohl beide die gleiche /etc/resolv.conf haben.

Interessante Erkenntnis: das scheint ein image-Problem zu sein: Mit dem rust image hab ich auch auf `amd64` unter RL9 DNS-[Probleme](https://drone.libre.moe/KomuSolutions/WANessa/341/1/4), wenn ich jedoch zb. `debian:latest` nehme und mal einen nslookup mache, dann ist das [kein problem](https://drone.libre.moe/lukas/test/9/1/2), owbohl beide die gleiche `/etc/resolv.conf` haben.
Owner

Nvmd, anscheinend gehen im rust image auch andere dinge ohne dns fix
https://drone.libre.moe/lukas/test/14/1/2

Nvmd, anscheinend gehen im rust image auch andere dinge ohne dns fix https://drone.libre.moe/lukas/test/14/1/2
Owner

Sollen wir die Priorität mal ändern, da wir ja einen workaround haben?

Sollen wir die Priorität mal ändern, da wir ja einen workaround haben?
leon added
Priority
Medium
and removed
Priority
High
labels 2024-02-15 19:09:26 +01:00
Author
Owner

done

done
Owner

Konnten wir das Problem eigentlich außerhalb von Drone reproduzieren?

Konnten wir das Problem eigentlich außerhalb von Drone reproduzieren?
Author
Owner

Wie meinst du das genau:

  • Mit einer anderen CI-Solution, also gitea actions?
  • Mit dem Rust Docker image allgemein, unnabhaengig von jeglicher CI?
Wie meinst du das genau: - Mit einer anderen CI-Solution, also gitea actions? - Mit dem Rust Docker image allgemein, unnabhaengig von jeglicher CI?
Owner

Ja, also generell, ist dir das Problem schonmal in irgendeiner anderen Art, die nicht mit Drone zu tun hat, aufgefallen? Weil mir noch nicht und ich würde gerne rausfinden, in wie fern RL9 damit verbunden ist.

Ja, also generell, ist dir das Problem schonmal in irgendeiner anderen Art, die nicht mit Drone zu tun hat, aufgefallen? Weil mir noch nicht und ich würde gerne rausfinden, in wie fern RL9 damit verbunden ist.
lukas removed the
Domain
komu.boo
label 2024-02-16 16:10:38 +01:00
Author
Owner

Ja, also generell, ist dir das Problem schonmal in irgendeiner anderen Art, die nicht mit Drone zu tun hat, aufgefallen? Weil mir noch nicht und ich würde gerne rausfinden, in wie fern RL9 damit verbunden ist.

Also meine Faehrten/Vermutungen sind die folgenden:

  • Podman
  • SELinux, denn wann macht es mal keine Probleme?
  • All of the above
> Ja, also generell, ist dir das Problem schonmal in irgendeiner anderen Art, die nicht mit Drone zu tun hat, aufgefallen? Weil mir noch nicht und ich würde gerne rausfinden, in wie fern RL9 damit verbunden ist. Also meine Faehrten/Vermutungen sind die folgenden: - [Podman](https://github.com/containers/podman/blob/main/docs/tutorials/basic_networking.md#default-network) - SELinux, denn wann macht es mal keine Probleme? - All of the above
Owner

Ja, ich gehe auch von Podman aus, aber es scheint ja eine Kombination zwischen Podman's DNS und wie Drone den Container startet zu sein, schließlich sind keinerlei andere Probleme dieser Art bekannt.

SELinux sehe ich da eher weniger (was ja nicht heißen muss), aber das ist ja mehr für file-based dinge.

Ja, ich gehe auch von Podman aus, aber es scheint ja eine Kombination zwischen Podman's DNS und wie Drone den Container startet zu sein, schließlich sind keinerlei andere Probleme dieser Art bekannt. SELinux sehe ich da eher weniger (was ja nicht heißen muss), aber das ist ja mehr für file-based dinge.
Author
Owner

Ja, ich gehe auch von Podman aus, aber es scheint ja eine Kombination zwischen Podman's DNS und wie Drone den Container startet zu sein, schließlich sind keinerlei andere Probleme dieser Art bekannt.

SELinux sehe ich da eher weniger (was ja nicht heißen muss), aber das ist ja mehr für file-based dinge.

Jein, ich hatte mal an einer anderen stelle das Problem, das SELinux die Docker-Socket blockiert hat.
Ausserhalb von Drone habe ich noch keine Experimente mit dem oder anderen Images gemacht.

> Ja, ich gehe auch von Podman aus, aber es scheint ja eine Kombination zwischen Podman's DNS und wie Drone den Container startet zu sein, schließlich sind keinerlei andere Probleme dieser Art bekannt. > > SELinux sehe ich da eher weniger (was ja nicht heißen muss), aber das ist ja mehr für file-based dinge. Jein, ich hatte mal an einer anderen stelle das Problem, das SELinux die Docker-Socket blockiert hat. Ausserhalb von Drone habe ich noch keine Experimente mit dem oder anderen Images gemacht.
Author
Owner

Ich tendiere jedoch auch gegen Podman, da sich das problem ja sogar innerhalb des Containers fixen laesst.
(siehe stupid workaround)

Ich tendiere jedoch auch gegen Podman, da sich das problem ja sogar innerhalb des Containers fixen laesst. (siehe stupid workaround)
Owner

Also ich hatte in RL9 bisher auch nie Probleme mit dem default network, bzw. dem network, dass default ist.
Besonders sollte man vielleicht hervorheben, dass Drone ja auch nur für Docker und nicht für Podman gebaut ist, damit also vielleicht auch einfach nicht gut umgehen kann und wir deshalb diese Probleme haben.

Also ich hatte in RL9 bisher auch nie Probleme mit dem default network, bzw. dem network, dass default ist. Besonders sollte man vielleicht hervorheben, dass Drone ja auch nur für Docker und nicht für Podman gebaut ist, damit also vielleicht auch einfach nicht gut umgehen kann und wir deshalb diese Probleme haben.
Author
Owner

Ansonsten ist das hier meine Haupttheorie:

Ansonsten ist das hier meine Haupttheorie: - Podman hat per Default keine dns resolution - Man kann es aber aktivieren: https://github.com/containers/podman/blob/main/docs/tutorials/basic_networking.md#default-network - Drone respektiert aber die config nicht, weil die ihre eigene Config nutzen - Die gehen aus, dass das in Docker laeuft, wo man per default DNS resolution hat => Das Problem tritt auf
Owner

Also was "It does not support dns resolution" genau bedeutet ist auch unklar:

  • Gibt es einfach nur keinen DNS server für das Netzwerk?
  • Erlaubt das Netzwerk keinen DNS-Traffic?
  • Oder resolved das Netzwerk einfach nicht die Namen von Containern als IPs?
Also was "It does not support dns resolution" genau bedeutet ist auch unklar: - Gibt es einfach nur keinen DNS server für das Netzwerk? - Erlaubt das Netzwerk keinen DNS-Traffic? - Oder resolved das Netzwerk einfach nicht die Namen von Containern als IPs?
Owner

Ich hab den Artikel mal genau gelesen, das default network gilt für den Adapter netavark, der aber nur bei rootful containern default ist. Für rootless container ist slirp4netns default. Dafür gilt das ganze "no dns" ding nicht, soweit ich weiß.

Ich hab den Artikel mal genau gelesen, das default network gilt für den Adapter `netavark`, der aber nur bei rootful containern default ist. Für rootless container ist `slirp4netns` default. Dafür gilt das ganze "no dns" ding nicht, soweit ich weiß.
Owner

Vorallem: bisher hatte ich nie DNS issues in irgendwelchen Podman containern oder Netzwerken. Die sind bei mir alle default und nutzen auch Kommunikation miteinander über DNS-Namen, die nutzen also definitiv Podman's DNS.

Vorallem: bisher hatte ich nie DNS issues in irgendwelchen Podman containern oder Netzwerken. Die sind bei mir alle default und nutzen auch Kommunikation miteinander über DNS-Namen, die nutzen also definitiv Podman's DNS.
Author
Owner

Ich hab den Artikel mal genau gelesen, das default network gilt für den Adapter netavark, der aber nur bei rootful containern default ist. Für rootless container ist slirp4netns default. Dafür gilt das ganze "no dns" ding nicht, soweit ich weiß.

Da Drone ja eigentlich Docker nutzt, muessten das aber doch eben rootful container sein?

> Ich hab den Artikel mal genau gelesen, das default network gilt für den Adapter `netavark`, der aber nur bei rootful containern default ist. Für rootless container ist `slirp4netns` default. Dafür gilt das ganze "no dns" ding nicht, soweit ich weiß. Da Drone ja eigentlich Docker nutzt, muessten das aber doch eben rootful container sein?
Owner

Jagut, da hab ich keine Ahnung.
Aber es sollte angemerkt werden, dass in 90% der Fälle wo man bei Cotnainern über DNS redet, sich das nur auf die resolution von Container names zu IP Addressen bezieht.

Jagut, da hab ich keine Ahnung. Aber es sollte angemerkt werden, dass in 90% der Fälle wo man bei Cotnainern über DNS redet, sich das nur auf die resolution von Container names zu IP Addressen bezieht.
Owner

Außerdem: rootfull podman containers haben keine Probleme mit public DNS
image

Außerdem: rootfull podman containers haben keine Probleme mit public DNS ![image](/attachments/89ab1b38-41d0-4395-a4df-6f4a92ea60fb)
102 KiB
lukas changed title from Containers on RL9 Arm Runner cannot resolve DNS to Drone CI-Containers on RL9 Arm Runner cannot resolve DNS 2024-02-17 14:06:12 +01:00
lukas added
Status
Abandoned
Status
Won't Fix
and removed
Status
Planned
labels 2024-02-26 16:58:38 +01:00
Owner

Ich schließe dieses Issue mal, da es nicht für uns fix-able ist bzw. wahrscheinlich ein Problem mit Podman darstellt.
Wenn man weiterhin Probleme hat und kein woraround nutzen möchte, kann man ja einfach Docker nutzen (da Podman von Drone nicht offiziell unterstützt wird).

Ich schließe dieses Issue mal, da es nicht für uns fix-able ist bzw. wahrscheinlich ein Problem mit Podman darstellt. Wenn man weiterhin Probleme hat und kein woraround nutzen möchte, kann man ja einfach Docker nutzen (da Podman von Drone nicht offiziell unterstützt wird).
lukas closed this issue 2024-02-26 16:58:41 +01:00
lukas removed this from the Issue Board project 2024-03-01 13:04:39 +01:00
lukas removed the
Status
Won't Fix
label 2024-03-28 16:11:56 +01:00
Sign in to join this conversation.
No description provided.