mirror of
https://github.com/containers/podman.git
synced 2026-03-13 08:01:19 +08:00
Merge pull request #8585 from Luap99/rootless-net-alias
Add support for rootless network-aliases and static ip/mac
This commit is contained in:
@@ -2,7 +2,7 @@ ARG GOLANG_VERSION=1.15
|
||||
ARG ALPINE_VERSION=3.12
|
||||
ARG CNI_VERSION=v0.8.0
|
||||
ARG CNI_PLUGINS_VERSION=v0.8.7
|
||||
ARG DNSNAME_VERSION=v1.0.0
|
||||
ARG DNSNAME_VERSION=v1.1.1
|
||||
|
||||
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} AS golang-base
|
||||
RUN apk add --no-cache git
|
||||
@@ -33,4 +33,4 @@ COPY rootless-cni-infra /usr/local/bin
|
||||
ENV CNI_PATH=/opt/cni/bin
|
||||
CMD ["sleep", "infinity"]
|
||||
|
||||
ENV ROOTLESS_CNI_INFRA_VERSION=3
|
||||
ENV ROOTLESS_CNI_INFRA_VERSION=5
|
||||
|
||||
@@ -21,16 +21,19 @@ wait_unshare_net() {
|
||||
done
|
||||
}
|
||||
|
||||
# CLI subcommand: "alloc $CONTAINER_ID $NETWORK_NAME $POD_NAME"
|
||||
# CLI subcommand: "alloc $CONTAINER_ID $NETWORK_NAME $POD_NAME $IP $MAC $CAP_ARGS"
|
||||
cmd_entrypoint_alloc() {
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo >&2 "Usage: $ARG0 alloc CONTAINER_ID NETWORK_NAME POD_NAME"
|
||||
if [ "$#" -ne 6 ]; then
|
||||
echo >&2 "Usage: $ARG0 alloc CONTAINER_ID NETWORK_NAME POD_NAME IP MAC CAP_ARGS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ID="$1"
|
||||
NET="$2"
|
||||
K8S_POD_NAME="$3"
|
||||
IP="$4"
|
||||
MAC="$5"
|
||||
CAP_ARGS="$6"
|
||||
|
||||
dir="${BASE}/${ID}"
|
||||
mkdir -p "${dir}/attached" "${dir}/attached-args"
|
||||
@@ -46,9 +49,18 @@ cmd_entrypoint_alloc() {
|
||||
nsenter -t "${pid}" -n ip link set lo up
|
||||
fi
|
||||
CNI_ARGS="IgnoreUnknown=1;K8S_POD_NAME=${K8S_POD_NAME}"
|
||||
if [ "$IP" ]; then
|
||||
CNI_ARGS="$CNI_ARGS;IP=${IP}"
|
||||
fi
|
||||
if [ "$MAC" ]; then
|
||||
CNI_ARGS="$CNI_ARGS;MAC=${MAC}"
|
||||
fi
|
||||
if [ "$CAP_ARGS" ]; then
|
||||
CAP_ARGS="$CAP_ARGS"
|
||||
fi
|
||||
nwcount=$(find "${dir}/attached" -type f | wc -l)
|
||||
CNI_IFNAME="eth${nwcount}"
|
||||
export CNI_ARGS CNI_IFNAME
|
||||
export CNI_ARGS CNI_IFNAME CAP_ARGS
|
||||
cnitool add "${NET}" "/proc/${pid}/ns/net" >"${dir}/attached/${NET}"
|
||||
echo "${CNI_ARGS}" >"${dir}/attached-args/${NET}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user