Merge pull request #4910 from bergwolf/2.5.0-branch-bump

# Kata Containers 2.5.0
This commit is contained in:
GabyCT 2022-08-16 16:41:20 -05:00 committed by GitHub
commit 94c7f6e5a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 50 additions and 20 deletions

View File

@ -1 +1 @@
2.5.0-rc0 2.5.0

View File

@ -1092,6 +1092,16 @@ impl BaseContainer for LinuxContainer {
fs::remove_dir_all(&self.root)?; fs::remove_dir_all(&self.root)?;
if let Some(cgm) = self.cgroup_manager.as_mut() { if let Some(cgm) = self.cgroup_manager.as_mut() {
// Kill all of the processes created in this container to prevent
// the leak of some daemon process when this container shared pidns
// with the sandbox.
let pids = cgm.get_pids().context("get cgroup pids")?;
for i in pids {
if let Err(e) = signal::kill(Pid::from_raw(i), Signal::SIGKILL) {
warn!(self.logger, "kill the process {} error: {:?}", i, e);
}
}
cgm.destroy().context("destroy cgroups")?; cgm.destroy().context("destroy cgroups")?;
} }
Ok(()) Ok(())

View File

@ -118,6 +118,9 @@ block_device_driver = "@DEFBLOCKSTORAGEDRIVER_ACRN@"
# but it will not abort container execution. # but it will not abort container execution.
#guest_hook_path = "/usr/share/oci/hooks" #guest_hook_path = "/usr/share/oci/hooks"
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
[agent.@PROJECT_TYPE@] [agent.@PROJECT_TYPE@]
# If enabled, make the agent display debug-level messages. # If enabled, make the agent display debug-level messages.
# (default: disabled) # (default: disabled)
@ -186,9 +189,6 @@ internetworking_model="@DEFNETWORKMODEL_ACRN@"
# (default: true) # (default: true)
disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@ disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
# If enabled, the runtime will create opentracing.io traces and spans. # If enabled, the runtime will create opentracing.io traces and spans.
# (See https://www.jaegertracing.io/docs/getting-started). # (See https://www.jaegertracing.io/docs/getting-started).
# (default: disabled) # (default: disabled)

View File

@ -39,6 +39,9 @@ image = "@IMAGEPATH@"
# Default false # Default false
# confidential_guest = true # confidential_guest = true
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
# Path to the firmware. # Path to the firmware.
# If you want Cloud Hypervisor to use a specific firmware, set its path below. # If you want Cloud Hypervisor to use a specific firmware, set its path below.
# This is option is only used when confidential_guest is enabled. # This is option is only used when confidential_guest is enabled.
@ -319,9 +322,6 @@ internetworking_model="@DEFNETWORKMODEL_CLH@"
# (default: true) # (default: true)
disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@ disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
# If enabled, the runtime will create opentracing.io traces and spans. # If enabled, the runtime will create opentracing.io traces and spans.
# (See https://www.jaegertracing.io/docs/getting-started). # (See https://www.jaegertracing.io/docs/getting-started).
# (default: disabled) # (default: disabled)

View File

@ -221,6 +221,9 @@ valid_entropy_sources = @DEFVALIDENTROPYSOURCES@
# Default 0-sized value means unlimited rate. # Default 0-sized value means unlimited rate.
#tx_rate_limiter_max_rate = 0 #tx_rate_limiter_max_rate = 0
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
[factory] [factory]
# VM templating support. Once enabled, new VMs are created from template # VM templating support. Once enabled, new VMs are created from template
# using vm cloning. They will share the same initial kernel, initramfs and # using vm cloning. They will share the same initial kernel, initramfs and
@ -309,9 +312,6 @@ internetworking_model="@DEFNETWORKMODEL_FC@"
# (default: true) # (default: true)
disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@ disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
# If enabled, the runtime will create opentracing.io traces and spans. # If enabled, the runtime will create opentracing.io traces and spans.
# (See https://www.jaegertracing.io/docs/getting-started). # (See https://www.jaegertracing.io/docs/getting-started).
# (default: disabled) # (default: disabled)

View File

@ -406,6 +406,9 @@ valid_entropy_sources = @DEFVALIDENTROPYSOURCES@
# use legacy serial for guest console if available and implemented for architecture. Default false # use legacy serial for guest console if available and implemented for architecture. Default false
#use_legacy_serial = true #use_legacy_serial = true
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
[factory] [factory]
# VM templating support. Once enabled, new VMs are created from template # VM templating support. Once enabled, new VMs are created from template
# using vm cloning. They will share the same initial kernel, initramfs and # using vm cloning. They will share the same initial kernel, initramfs and
@ -523,9 +526,6 @@ internetworking_model="@DEFNETWORKMODEL_QEMU@"
# (default: true) # (default: true)
disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@ disable_guest_seccomp=@DEFDISABLEGUESTSECCOMP@
# disable applying SELinux on the VMM process (default false)
disable_selinux=@DEFDISABLESELINUX@
# If enabled, the runtime will create opentracing.io traces and spans. # If enabled, the runtime will create opentracing.io traces and spans.
# (See https://www.jaegertracing.io/docs/getting-started). # (See https://www.jaegertracing.io/docs/getting-started).
# (default: disabled) # (default: disabled)

View File

@ -669,6 +669,7 @@ func newFirecrackerHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) {
RxRateLimiterMaxRate: rxRateLimiterMaxRate, RxRateLimiterMaxRate: rxRateLimiterMaxRate,
TxRateLimiterMaxRate: txRateLimiterMaxRate, TxRateLimiterMaxRate: txRateLimiterMaxRate,
EnableAnnotations: h.EnableAnnotations, EnableAnnotations: h.EnableAnnotations,
DisableSeLinux: h.DisableSeLinux,
}, nil }, nil
} }
@ -805,6 +806,7 @@ func newQemuHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) {
GuestSwap: h.GuestSwap, GuestSwap: h.GuestSwap,
Rootless: h.Rootless, Rootless: h.Rootless,
LegacySerial: h.LegacySerial, LegacySerial: h.LegacySerial,
DisableSeLinux: h.DisableSeLinux,
}, nil }, nil
} }
@ -869,6 +871,7 @@ func newAcrnHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) {
BlockDeviceDriver: blockDriver, BlockDeviceDriver: blockDriver,
DisableVhostNet: h.DisableVhostNet, DisableVhostNet: h.DisableVhostNet,
GuestHookPath: h.guestHookPath(), GuestHookPath: h.guestHookPath(),
DisableSeLinux: h.DisableSeLinux,
EnableAnnotations: h.EnableAnnotations, EnableAnnotations: h.EnableAnnotations,
}, nil }, nil
} }

View File

@ -2015,11 +2015,13 @@ func (k *kataAgent) sendReq(spanCtx context.Context, request interface{}) (inter
k.Lock() k.Lock()
if k.reqHandlers == nil { if k.reqHandlers == nil {
k.Unlock()
return nil, errors.New("Client has already disconnected") return nil, errors.New("Client has already disconnected")
} }
handler := k.reqHandlers[msgName] handler := k.reqHandlers[msgName]
if msgName == "" || handler == nil { if msgName == "" || handler == nil {
k.Unlock()
return nil, errors.New("Invalid request type") return nil, errors.New("Invalid request type")
} }

View File

@ -18,7 +18,7 @@ spec:
katacontainers.io/kata-runtime: cleanup katacontainers.io/kata-runtime: cleanup
containers: containers:
- name: kube-kata-cleanup - name: kube-kata-cleanup
image: quay.io/kata-containers/kata-deploy:latest image: quay.io/kata-containers/kata-deploy:2.5.0
imagePullPolicy: Always imagePullPolicy: Always
command: [ "bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh reset" ] command: [ "bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh reset" ]
env: env:

View File

@ -16,7 +16,7 @@ spec:
serviceAccountName: kata-label-node serviceAccountName: kata-label-node
containers: containers:
- name: kube-kata - name: kube-kata
image: quay.io/kata-containers/kata-deploy:latest image: quay.io/kata-containers/kata-deploy:2.5.0
imagePullPolicy: Always imagePullPolicy: Always
lifecycle: lifecycle:
preStop: preStop:

View File

@ -23,8 +23,13 @@ RUN apt-get update && \
ARG IMG_USER=kata-builder ARG IMG_USER=kata-builder
ARG UID=1000 ARG UID=1000
ARG GID=1000 ARG GID=1000
# gid of the docker group on the host, required for running docker in docker builds.
ARG HOST_DOCKER_GID
RUN if [ ${IMG_USER} != "root" ]; then groupadd --gid=${GID} ${IMG_USER};fi RUN if [ ${IMG_USER} != "root" ]; then groupadd --gid=${GID} ${IMG_USER};fi
RUN if [ ${IMG_USER} != "root" ]; then adduser ${IMG_USER} --uid=${UID} --gid=${GID};fi RUN if [ ${IMG_USER} != "root" ]; then adduser ${IMG_USER} --uid=${UID} --gid=${GID};fi
RUN if [ ${IMG_USER} != "root" ] && [ ! -z ${HOST_DOCKER_GID} ]; then groupadd --gid=${HOST_DOCKER_GID} docker_on_host;fi
RUN if [ ${IMG_USER} != "root" ] && [ ! -z ${HOST_DOCKER_GID} ]; then usermod -a -G docker_on_host ${IMG_USER};fi
RUN sh -c "echo '${IMG_USER} ALL=NOPASSWD: ALL' >> /etc/sudoers" RUN sh -c "echo '${IMG_USER} ALL=NOPASSWD: ALL' >> /etc/sudoers"
#FIXME: gcc is required as agent is build out of a container build. #FIXME: gcc is required as agent is build out of a container build.
@ -40,4 +45,4 @@ RUN apt-get update && \
apt-get clean && rm -rf /var/lib/apt/lists apt-get clean && rm -rf /var/lib/apt/lists
ENV USER ${IMG_USER} ENV USER ${IMG_USER}
USER ${UID}:${GID} USER ${IMG_USER}

View File

@ -20,17 +20,27 @@ if [ "${script_dir}" != "${PWD}" ]; then
ln -sf "${script_dir}/build" "${PWD}/build" ln -sf "${script_dir}/build" "${PWD}/build"
fi fi
# This is the gid of the "docker" group on host. In case of docker in docker builds
# for some of the targets (clh builds from source), the nested container user needs to
# be part of this group.
docker_gid=$(getent group docker | cut -d: -f3 || { echo >&2 "Missing docker group, docker needs to be installed" && false; })
# If docker gid is the effective group id of the user, do not pass it as
# an additional group.
if [ ${docker_gid} == ${gid} ]; then
docker_gid=""
fi
docker build -q -t build-kata-deploy \ docker build -q -t build-kata-deploy \
--build-arg IMG_USER="${USER}" \ --build-arg IMG_USER="${USER}" \
--build-arg UID=${uid} \ --build-arg UID=${uid} \
--build-arg GID=${gid} \ --build-arg GID=${gid} \
--build-arg HOST_DOCKER_GID=${docker_gid} \
"${script_dir}/dockerbuild/" "${script_dir}/dockerbuild/"
docker run \ docker run \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
--user ${uid}:${gid} \
--env USER=${USER} -v "${kata_dir}:${kata_dir}" \ --env USER=${USER} -v "${kata_dir}:${kata_dir}" \
--rm \ --rm \
-w ${script_dir} \ -w ${script_dir} \
build-kata-deploy "${kata_deploy_create}" $@ build-kata-deploy "${kata_deploy_create}" $@

View File

@ -241,12 +241,12 @@ externals:
nydus: nydus:
description: "Nydus image acceleration service" description: "Nydus image acceleration service"
url: "https://github.com/dragonflyoss/image-service" url: "https://github.com/dragonflyoss/image-service"
version: "v1.1.2" version: "v2.1.0-alpha.4"
nydus-snapshotter: nydus-snapshotter:
description: "Snapshotter for Nydus image acceleration service" description: "Snapshotter for Nydus image acceleration service"
url: "https://github.com/containerd/nydus-snapshotter" url: "https://github.com/containerd/nydus-snapshotter"
version: "v0.1.0" version: "v0.2.3"
virtiofsd: virtiofsd:
description: "vhost-user virtio-fs device backend written in Rust" description: "vhost-user virtio-fs device backend written in Rust"