mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	Split the setcap image from the base images, make them easier to override
This commit is contained in:
		| @@ -85,22 +85,35 @@ readonly KUBE_RSYNC_PORT="${KUBE_RSYNC_PORT:-}" | |||||||
| # mapped to KUBE_RSYNC_PORT via docker networking. | # mapped to KUBE_RSYNC_PORT via docker networking. | ||||||
| readonly KUBE_CONTAINER_RSYNC_PORT=8730 | readonly KUBE_CONTAINER_RSYNC_PORT=8730 | ||||||
|  |  | ||||||
|  | # These are the default versions (image tags) for their respective base images. | ||||||
|  | readonly __default_debian_iptables_version=buster-v1.5.0 | ||||||
|  | readonly __default_go_runner_version=buster-v2.3.1 | ||||||
|  |  | ||||||
|  | # These are the base images for the Docker-wrapped binaries. | ||||||
|  | readonly KUBE_GORUNNER_IMAGE="${KUBE_GORUNNER_IMAGE:-$KUBE_BASE_IMAGE_REGISTRY/go-runner:$__default_go_runner_version}" | ||||||
|  | readonly KUBE_APISERVER_BASE_IMAGE="${KUBE_APISERVER_BASE_IMAGE:-$KUBE_GORUNNER_IMAGE}" | ||||||
|  | readonly KUBE_CONTROLLER_MANAGER_BASE_IMAGE="${KUBE_CONTROLLER_MANAGER_BASE_IMAGE:-$KUBE_GORUNNER_IMAGE}" | ||||||
|  | readonly KUBE_SCHEDULER_BASE_IMAGE="${KUBE_SCHEDULER_BASE_IMAGE:-$KUBE_GORUNNER_IMAGE}" | ||||||
|  | readonly KUBE_PROXY_BASE_IMAGE="${KUBE_PROXY_BASE_IMAGE:-$KUBE_BASE_IMAGE_REGISTRY/debian-iptables:$__default_debian_iptables_version}" | ||||||
|  |  | ||||||
|  | # This is the image used in a multi-stage build to apply capabilities to Docker-wrapped binaries. | ||||||
|  | readonly KUBE_BUILD_SETCAP_IMAGE="${KUBE_BUILD_SETCAP_IMAGE:-$KUBE_BASE_IMAGE_REGISTRY/setcap:buster-v1.4.0}" | ||||||
|  |  | ||||||
| # Get the set of master binaries that run in Docker (on Linux) | # Get the set of master binaries that run in Docker (on Linux) | ||||||
| # Entry format is "<name-of-binary>,<base-image-name>:<base-image-version>". | # Entry format is "<binary-name>,<base-image>". | ||||||
| # Binaries are placed in /usr/local/bin inside the image. | # Binaries are placed in /usr/local/bin inside the image. | ||||||
| # When building these images the registry for the base images is considered to be ${KUBE_BASE_IMAGE_REGISTRY}. | # `make` users can override any or all of the base images using the associated | ||||||
|  | # environment variables. | ||||||
| # | # | ||||||
| # $1 - server architecture | # $1 - server architecture | ||||||
| kube::build::get_docker_wrapped_binaries() { | kube::build::get_docker_wrapped_binaries() { | ||||||
|   local debian_iptables_version=buster-v1.5.0 |  | ||||||
|   local go_runner_version=buster-v2.3.1 |  | ||||||
|   ### If you change any of these lists, please also update DOCKERIZED_BINARIES |   ### If you change any of these lists, please also update DOCKERIZED_BINARIES | ||||||
|   ### in build/BUILD. And kube::golang::server_image_targets |   ### in build/BUILD. And kube::golang::server_image_targets | ||||||
|   local targets=( |   local targets=( | ||||||
|     "kube-apiserver,go-runner:${go_runner_version}" |     "kube-apiserver,${KUBE_APISERVER_BASE_IMAGE}" | ||||||
|     "kube-controller-manager,go-runner:${go_runner_version}" |     "kube-controller-manager,${KUBE_CONTROLLER_MANAGER_BASE_IMAGE}" | ||||||
|     "kube-scheduler,go-runner:${go_runner_version}" |     "kube-scheduler,${KUBE_SCHEDULER_BASE_IMAGE}" | ||||||
|     "kube-proxy,debian-iptables:${debian_iptables_version}" |     "kube-proxy,${KUBE_PROXY_BASE_IMAGE}" | ||||||
|   ) |   ) | ||||||
|  |  | ||||||
|   echo "${targets[@]}" |   echo "${targets[@]}" | ||||||
|   | |||||||
| @@ -156,7 +156,7 @@ dependencies: | |||||||
|     version: buster-v1.5.0 |     version: buster-v1.5.0 | ||||||
|     refPaths: |     refPaths: | ||||||
|     - path: build/common.sh |     - path: build/common.sh | ||||||
|       match: debian_iptables_version= |       match: __default_debian_iptables_version= | ||||||
|     - path: build/workspace.bzl |     - path: build/workspace.bzl | ||||||
|       match: tag = |       match: tag = | ||||||
|     - path: test/utils/image/manifest.go |     - path: test/utils/image/manifest.go | ||||||
| @@ -166,7 +166,7 @@ dependencies: | |||||||
|     version: buster-v2.3.1 |     version: buster-v2.3.1 | ||||||
|     refPaths: |     refPaths: | ||||||
|     - path: build/common.sh |     - path: build/common.sh | ||||||
|       match: go_runner_version= |       match: __default_go_runner_version= | ||||||
|     - path: build/workspace.bzl |     - path: build/workspace.bzl | ||||||
|       match: tag = |       match: tag = | ||||||
|  |  | ||||||
|   | |||||||
| @@ -361,7 +361,7 @@ function kube::release::create_docker_images_for_server() { | |||||||
|     for wrappable in $binaries; do |     for wrappable in $binaries; do | ||||||
|  |  | ||||||
|       local binary_name=${wrappable%%,*} |       local binary_name=${wrappable%%,*} | ||||||
|       local base_image_name=${wrappable##*,} |       local base_image=${wrappable##*,} | ||||||
|       local binary_file_path="${binary_dir}/${binary_name}" |       local binary_file_path="${binary_dir}/${binary_name}" | ||||||
|       local docker_build_path="${binary_file_path}.dockerbuild" |       local docker_build_path="${binary_file_path}.dockerbuild" | ||||||
|       local docker_image_tag="${docker_registry}/${binary_name}-${arch}:${docker_tag}" |       local docker_image_tag="${docker_registry}/${binary_name}-${arch}:${docker_tag}" | ||||||
| @@ -384,8 +384,8 @@ function kube::release::create_docker_images_for_server() { | |||||||
|           --platform linux/"${arch}" \ |           --platform linux/"${arch}" \ | ||||||
|           --load ${docker_build_opts:+"${docker_build_opts}"} \ |           --load ${docker_build_opts:+"${docker_build_opts}"} \ | ||||||
|           -t "${docker_image_tag}" \ |           -t "${docker_image_tag}" \ | ||||||
|           --build-arg BASE_IMAGE_REGISTRY="${KUBE_BASE_IMAGE_REGISTRY}" \ |           --build-arg BASEIMAGE="${base_image}" \ | ||||||
|           --build-arg BASE_IMAGE_NAME="${base_image_name}" \ |           --build-arg SETCAP_IMAGE="${KUBE_BUILD_SETCAP_IMAGE}" \ | ||||||
|           --build-arg BINARY="${binary_name}" \ |           --build-arg BINARY="${binary_name}" \ | ||||||
|           "${docker_build_path}" >"${build_log}" 2>&1; then |           "${docker_build_path}" >"${build_log}" 2>&1; then | ||||||
|             cat "${build_log}" |             cat "${build_log}" | ||||||
|   | |||||||
| @@ -14,10 +14,9 @@ | |||||||
|  |  | ||||||
| # Dockerfile used for the server images. | # Dockerfile used for the server images. | ||||||
|  |  | ||||||
| ARG BASE_IMAGE_REGISTRY | ARG BASEIMAGE | ||||||
| ARG BASE_IMAGE_NAME |  | ||||||
| ARG BINARY | ARG BINARY | ||||||
|  |  | ||||||
|  |  | ||||||
| FROM "${BASE_IMAGE_REGISTRY}/${BASE_IMAGE_NAME}" | FROM "${BASEIMAGE}" | ||||||
| COPY ${BINARY} /usr/local/bin/${BINARY} | COPY ${BINARY} /usr/local/bin/${BINARY} | ||||||
|   | |||||||
| @@ -13,17 +13,18 @@ | |||||||
| # limitations under the License. | # limitations under the License. | ||||||
|  |  | ||||||
| # This file create the kube-apiserver image. | # This file create the kube-apiserver image. | ||||||
| ARG BASE_IMAGE_REGISTRY | ARG BASEIMAGE | ||||||
| ARG BASE_IMAGE_NAME | ARG SETCAP_IMAGE | ||||||
|  |  | ||||||
| # we use the hosts platform to apply the capabilities to avoid the need | # we use the hosts platform to apply the capabilities to avoid the need | ||||||
| # to setup qemu for the builder. | # to setup qemu for the builder. | ||||||
| FROM --platform=linux/$BUILDARCH ${BASE_IMAGE_REGISTRY}/setcap:buster-v1.4.0 | FROM --platform=linux/$BUILDARCH ${SETCAP_IMAGE} | ||||||
| ARG BINARY | ARG BINARY | ||||||
| COPY ${BINARY} /${BINARY} | COPY ${BINARY} /${BINARY} | ||||||
| # We apply cap_net_bind_service so that kube-apiserver can be run as | # We apply cap_net_bind_service so that kube-apiserver can be run as | ||||||
| # non-root and still listen on port less than 1024 | # non-root and still listen on port less than 1024 | ||||||
| RUN setcap cap_net_bind_service=+ep /${BINARY} | RUN setcap cap_net_bind_service=+ep /${BINARY} | ||||||
|  |  | ||||||
| FROM --platform=linux/$TARGETARCH ${BASE_IMAGE_REGISTRY}/${BASE_IMAGE_NAME} | FROM --platform=linux/$TARGETARCH ${BASEIMAGE} | ||||||
| ARG BINARY | ARG BINARY | ||||||
| COPY --from=0 /${BINARY} /usr/local/bin/${BINARY} | COPY --from=0 /${BINARY} /usr/local/bin/${BINARY} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jake Sanders
					Jake Sanders