FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 # bird: BGP daemon for the pod-network mesh over pod0. Distro package, no build # step — the image is the binary plus its runtime. # # 3.22 rather than the 3.21 the other images here pin: bird2 first appears in # 3.22/community. # # Config is read from /etc/bird/bird.conf, not the package default # /etc/bird.conf, so the mount cannot shadow what the package ships. # # kubectl renders the init container's per-node config: go-template-file for # the templating, a field selector for excluding the node itself, in-cluster # config for the auth. From the distro, so there is no version literal to drift # and no download to trust. It is only ever used to read core/v1 Nodes. RUN apk add --no-cache bird2 kubectl # Fails the build rather than the first pod if a binary or its path is wrong. RUN /usr/sbin/bird --version \ && kubectl version --client > /dev/null ENTRYPOINT ["/usr/sbin/bird", "-f", "-c", "/etc/bird/bird.conf"]