fix kicbase dockerfile to allow ppc64le and armv7 archs
parent
8c1c6295bc
commit
6b7168cf4b
2
Makefile
2
Makefile
|
@ -690,7 +690,7 @@ docker-multi-arch-builder:
|
||||||
env $(X_BUILD_ENV) docker buildx rm --builder $(X_DOCKER_BUILDER) || true
|
env $(X_BUILD_ENV) docker buildx rm --builder $(X_DOCKER_BUILDER) || true
|
||||||
env $(X_BUILD_ENV) docker buildx create --name $(X_DOCKER_BUILDER) --buildkitd-flags '--debug' || true
|
env $(X_BUILD_ENV) docker buildx create --name $(X_DOCKER_BUILDER) --buildkitd-flags '--debug' || true
|
||||||
|
|
||||||
KICBASE_ARCH = linux/amd64,linux/arm64,linux/s390x
|
KICBASE_ARCH ?= linux/amd64,linux/arm64,linux/s390x,linux/arm,linux/ppc64le
|
||||||
KICBASE_IMAGE_GCR ?= $(REGISTRY)/kicbase:$(KIC_VERSION)
|
KICBASE_IMAGE_GCR ?= $(REGISTRY)/kicbase:$(KIC_VERSION)
|
||||||
KICBASE_IMAGE_HUB ?= kicbase/stable:$(KIC_VERSION)
|
KICBASE_IMAGE_HUB ?= kicbase/stable:$(KIC_VERSION)
|
||||||
KICBASE_IMAGE_REGISTRIES ?= $(KICBASE_IMAGE_GCR) $(KICBASE_IMAGE_HUB)
|
KICBASE_IMAGE_REGISTRIES ?= $(KICBASE_IMAGE_GCR) $(KICBASE_IMAGE_HUB)
|
||||||
|
|
|
@ -1267,25 +1267,30 @@ func validateDiskSize(diskSize string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// validateRuntime validates the supplied runtime
|
// validateRuntime validates the supplied runtime
|
||||||
func validateRuntime(runtime string) error {
|
func validateRuntime(rtime string) error {
|
||||||
validOptions := cruntime.ValidRuntimes()
|
validOptions := cruntime.ValidRuntimes()
|
||||||
// `crio` is accepted as an alternative spelling to `cri-o`
|
// `crio` is accepted as an alternative spelling to `cri-o`
|
||||||
validOptions = append(validOptions, constants.CRIO)
|
validOptions = append(validOptions, constants.CRIO)
|
||||||
|
|
||||||
var validRuntime bool
|
var validRuntime bool
|
||||||
for _, option := range validOptions {
|
for _, option := range validOptions {
|
||||||
if runtime == option {
|
if rtime == option {
|
||||||
validRuntime = true
|
validRuntime = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert `cri-o` to `crio` as the K8s config uses the `crio` spelling
|
// Convert `cri-o` to `crio` as the K8s config uses the `crio` spelling
|
||||||
if runtime == "cri-o" {
|
if rtime == "cri-o" {
|
||||||
viper.Set(containerRuntime, constants.CRIO)
|
viper.Set(containerRuntime, constants.CRIO)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rtime == "crio" || rtime == "cri-o") && strings.HasPrefix(runtime.GOARCH, "ppc64") {
|
||||||
|
return errors.Errorf("The CRI-O runtime is not compatible with the ppc architecture.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !validRuntime {
|
if !validRuntime {
|
||||||
return errors.Errorf("Invalid Container Runtime: %s. Valid runtimes are: %s", runtime, cruntime.ValidRuntimes())
|
return errors.Errorf("Invalid Container Runtime: %s. Valid runtimes are: %s", rtime, cruntime.ValidRuntimes())
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,10 @@ RUN clean-install \
|
||||||
fuse3
|
fuse3
|
||||||
|
|
||||||
# install docker
|
# install docker
|
||||||
RUN sh -c "echo 'deb https://download.docker.com/linux/ubuntu focal stable' > /etc/apt/sources.list.d/docker.list" && \
|
# use the bionic packages for arm32
|
||||||
|
RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/armhf/arm-v7/') && \
|
||||||
|
if [ "$ARCH" == "arm-v7" ]; then export DIST="bionic"; else export DIST="focal"; fi && \
|
||||||
|
sh -c "echo 'deb https://download.docker.com/linux/ubuntu ${DIST} stable' > /etc/apt/sources.list.d/docker.list" && \
|
||||||
curl -L https://download.docker.com/linux/ubuntu/gpg -o docker.key && \
|
curl -L https://download.docker.com/linux/ubuntu/gpg -o docker.key && \
|
||||||
apt-key add - < docker.key && \
|
apt-key add - < docker.key && \
|
||||||
clean-install docker-ce docker-ce-cli containerd.io
|
clean-install docker-ce docker-ce-cli containerd.io
|
||||||
|
@ -159,10 +162,11 @@ RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/
|
||||||
&& systemctl enable buildkit.socket
|
&& systemctl enable buildkit.socket
|
||||||
|
|
||||||
# Install cri-o/podman dependencies:
|
# Install cri-o/podman dependencies:
|
||||||
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \
|
RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/armhf/arm-v7/') && \
|
||||||
|
if [ "$ARCH" != "ppc64le" ]; then sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \
|
||||||
curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \
|
curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \
|
||||||
apt-key add - < Release.key && \
|
apt-key add - < Release.key && \
|
||||||
clean-install containers-common catatonit conmon containernetworking-plugins cri-tools podman-plugins crun
|
clean-install containers-common catatonit conmon containernetworking-plugins cri-tools podman-plugins crun; fi
|
||||||
|
|
||||||
# install cri-o based on https://github.com/cri-o/cri-o/blob/release-1.22/README.md#installing-cri-o
|
# install cri-o based on https://github.com/cri-o/cri-o/blob/release-1.22/README.md#installing-cri-o
|
||||||
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:${CRIO_VERSION}.list" && \
|
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:${CRIO_VERSION}.list" && \
|
||||||
|
|
Loading…
Reference in New Issue