diff --git a/.github/workflows/kolla-image-push.yml b/.github/workflows/kolla-image-push.yml new file mode 100644 index 0000000000000000000000000000000000000000..8376983aea99f798a47f41d45ed136001df3999e --- /dev/null +++ b/.github/workflows/kolla-image-push.yml @@ -0,0 +1,37 @@ +name: OpenStack Kolla Images + +on: + pull_request: + paths: + - 'kolla' + - '.github/workflows/kolla-image-push.yml' + branches: [ master ] + +jobs: + build: + strategy: + matrix: + version: [queens, rocky] + + runs-on: ubuntu-18.04 + + steps: + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + working-directory: kolla + run: ./build.sh ${{matrix.version}} diff --git a/kolla/build.sh b/kolla/build.sh index 95c7f7031dbc44f880302c81f9b79456e575151f..93234b11c296ae52bef289a604f837604bb12528 100755 --- a/kolla/build.sh +++ b/kolla/build.sh @@ -52,9 +52,9 @@ BASE=${2:-"base"} DEPLIST=($(findDepList $BASE | sed "s/,/ /g")) for i in ${DEPLIST[@]} do - path=$(find $VERSION -name "Dockerfile" | grep "$i" | sed "s/Dockerfile//g") + path=$(find $VERSION -name "Dockerfile" | grep -E "\/$i\/Dockerfile$" | sed "s/Dockerfile//g") pushd $path &>/dev/null - docker buildx build -t "openeuler/openeuler-binary-$i:$VERSION-$OS_VERSOIN" --build-arg ARCH=`uname -m` --platform linux/amd64,linux/arm64 . --push + docker buildx build -t "openeuler/openeuler-binary-$i:$VERSION-$OS_VERSOIN" --platform linux/amd64,linux/arm64 . --push [[ $? -ne 0 ]] && echo "docker buildx failed in `pwd`" && exit 1 popd &>/dev/null done diff --git a/kolla/queens/20.03-lts-sp2/base/Dockerfile b/kolla/queens/20.03-lts-sp2/base/Dockerfile index 9a15d18f5dc3040b3bca2373c8480fa2e5a786e0..ac3d3b6959ab7ccc38272b9afd7a0224233a7163 100644 --- a/kolla/queens/20.03-lts-sp2/base/Dockerfile +++ b/kolla/queens/20.03-lts-sp2/base/Dockerfile @@ -1,8 +1,8 @@ FROM openeuler/openeuler:20.03-lts-sp2 -ARG ARCH +ARG TARGETARCH -COPY openEuler-${ARCH}.repo /etc/yum.repos.d/openEuler.repo +COPY openEuler-${TARGETARCH}.repo /etc/yum.repos.d/openEuler.repo RUN yum install -y shadow-utils RUN groupadd --force --gid 42475 almanach \ diff --git a/kolla/queens/20.03-lts-sp2/base/openEuler-x86-64.repo b/kolla/queens/20.03-lts-sp2/base/openEuler-amd64.repo similarity index 100% rename from kolla/queens/20.03-lts-sp2/base/openEuler-x86-64.repo rename to kolla/queens/20.03-lts-sp2/base/openEuler-amd64.repo diff --git a/kolla/queens/20.03-lts-sp2/base/openEuler-aarch64.repo b/kolla/queens/20.03-lts-sp2/base/openEuler-arm64.repo similarity index 100% rename from kolla/queens/20.03-lts-sp2/base/openEuler-aarch64.repo rename to kolla/queens/20.03-lts-sp2/base/openEuler-arm64.repo diff --git a/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile b/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile index bb37a171cf749594e990d7561c1d2d875e21416a..8541a454476929c002500000a5ebe9cc6df79fae 100644 --- a/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile +++ b/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile @@ -1,10 +1,13 @@ FROM openeuler/openeuler-binary-ironic-base:queens-20.03-lts-sp2 -ARG ARCH +ARG TARGETARCH -ENV ironic_arch=${ARCH} +ENV ironic_arch=${TARGETARCH} + +RUN yum -y install httpd mod_ssl mod_wsgi tftp-server + +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then yum -y install grub2-efi grub2-efi-aa64-modules ; else yum -y install syslinux-tftpboot ; fi -RUN yum -y install httpd mod_ssl mod_wsgi tftp-server grub2-efi grub2-efi-aa64-modules && yum clean all && rm -rf /var/cache/yum RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf diff --git a/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh b/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh index f7297988c6411781ee4906a68f03b013399a9d41..3ec959b9f074bb6531308792d79be9b5a4d06e55 100644 --- a/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh +++ b/kolla/queens/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh @@ -14,7 +14,7 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then exit 0 fi -if [[ "${ironic_arch}" =~ aarch64 ]]; then +if [[ "${ironic_arch}" =~ arm ]]; then modules="boot chain configfile efinet ext2 fat gettext help hfsplus loadenv \ lsefi normal part_gpt part_msdos read search search_fs_file search_fs_uuid \ search_label terminal terminfo tftp linux" diff --git a/kolla/queens/20.03-lts-sp2/nova/nova-base/Dockerfile b/kolla/queens/20.03-lts-sp2/nova/nova-base/Dockerfile index af56ef169995cabfc069337b09e1f887a5c4609e..ace99ca4d1410c3a0bd8d94643eae674ef00a219 100644 --- a/kolla/queens/20.03-lts-sp2/nova/nova-base/Dockerfile +++ b/kolla/queens/20.03-lts-sp2/nova/nova-base/Dockerfile @@ -1,15 +1,17 @@ FROM openeuler/openeuler-binary-openstack-base:queens-20.03-lts-sp2 +ARG TARGETARCH + RUN usermod --append --home /var/lib/nova --groups kolla nova \ && usermod --append --groups qemu nova \ && mkdir -p /var/lib/nova \ && chown -R 42436:42436 /var/lib/nova -RUN yum -y install bridge-utils openstack-nova-common openvswitch python2-cinderclient python2-keystoneclient edk2-aarch64 && yum clean all && rm -rf /var/cache/yum +RUN yum -y install bridge-utils openstack-nova-common openvswitch python2-cinderclient python2-keystoneclient && yum clean all && rm -rf /var/cache/yum + +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then yum -y install edk2-aarch64 ; else yum -y install edk2-ovmf ; fi -RUN mkdir -p /usr/share/AAVMF \ - && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd \ - && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then mkdir -p /usr/share/AAVMF && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd ; else mkdir -p /usr/share/OVMF && ln -s /usr/share/edk2/ovmf/OVMF_CODE.fd /usr/share/OVMF/OVMF_CODE.fd && ln -s /usr/share/edk2/ovmf/OVMF_VARS.fd /usr/share/OVMF/OVMF_VARS.fd ; fi COPY extend_start.sh /usr/local/bin/kolla_extend_start diff --git a/kolla/rocky/20.03-lts-sp2/base/Dockerfile b/kolla/rocky/20.03-lts-sp2/base/Dockerfile index 028435345f3987067285e30393a4b3959a24cfba..785b10321bddb6ff2761dac53f756a8985261988 100644 --- a/kolla/rocky/20.03-lts-sp2/base/Dockerfile +++ b/kolla/rocky/20.03-lts-sp2/base/Dockerfile @@ -1,8 +1,8 @@ FROM openeuler/openeuler:20.03-lts-sp2 -ARG ARCH +ARG TARGETARCH -COPY openEuler-${ARCH}.repo /etc/yum.repos.d/openEuler.repo +COPY openEuler-${TARGETARCH}.repo /etc/yum.repos.d/openEuler.repo RUN yum install -y shadow-utils RUN groupadd --force --gid 42475 almanach \ diff --git a/kolla/rocky/20.03-lts-sp2/base/openEuler-x86-64.repo b/kolla/rocky/20.03-lts-sp2/base/openEuler-amd64.repo similarity index 100% rename from kolla/rocky/20.03-lts-sp2/base/openEuler-x86-64.repo rename to kolla/rocky/20.03-lts-sp2/base/openEuler-amd64.repo diff --git a/kolla/rocky/20.03-lts-sp2/base/openEuler-aarch64.repo b/kolla/rocky/20.03-lts-sp2/base/openEuler-arm64.repo similarity index 100% rename from kolla/rocky/20.03-lts-sp2/base/openEuler-aarch64.repo rename to kolla/rocky/20.03-lts-sp2/base/openEuler-arm64.repo diff --git a/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile b/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile index a79ee95ca1c60a12fd1749a7f0b9941ce384bbab..b2cc187c16fb6679d69852edf1d43642b6067a36 100644 --- a/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile +++ b/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/Dockerfile @@ -1,10 +1,12 @@ FROM openeuler/openeuler-binary-ironic-base:rocky-20.03-lts-sp2 -ARG ARCH +ARG TARGETARCH -ENV ironic_arch=${ARCH} +ENV ironic_arch=${TARGETARCH} -RUN yum -y install httpd mod_ssl mod_wsgi tftp-server grub2-efi grub2-efi-aa64-modules && yum clean all && rm -rf /var/cache/yum +RUN yum -y install httpd mod_ssl mod_wsgi tftp-server + +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then yum -y install grub2-efi grub2-efi-aa64-modules ; else yum -y install syslinux-tftpboot ; fi RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf diff --git a/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh b/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh index 0ba57a834a0f5c2f7a5ff0334893bc8823ee8c76..72cead3fedd5a6a7b3d60d01f6344004b77940c2 100644 --- a/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh +++ b/kolla/rocky/20.03-lts-sp2/ironic/ironic-pxe/extend_start.sh @@ -28,7 +28,7 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then exit 0 fi -if [[ "${ironic_arch}" =~ aarch64 ]]; then +if [[ "${ironic_arch}" =~ arm ]]; then modules="boot chain configfile efinet ext2 fat gettext help hfsplus loadenv \ lsefi normal part_gpt part_msdos read search search_fs_file search_fs_uuid \ search_label terminal terminfo tftp linux" diff --git a/kolla/rocky/20.03-lts-sp2/nova/nova-base/Dockerfile b/kolla/rocky/20.03-lts-sp2/nova/nova-base/Dockerfile index d78796e96eba59db7c615bbdfa8280f46b905d56..ddd5f03d8ccde30f39fbdb8d48d88d2a26b600f4 100644 --- a/kolla/rocky/20.03-lts-sp2/nova/nova-base/Dockerfile +++ b/kolla/rocky/20.03-lts-sp2/nova/nova-base/Dockerfile @@ -1,15 +1,17 @@ FROM openeuler/openeuler-binary-openstack-base:rocky-20.03-lts-sp2 +ARG TARGETARCH + RUN usermod --append --home /var/lib/nova --groups kolla nova \ && usermod --append --groups qemu nova \ && mkdir -p /var/lib/nova \ && chown -R 42436:42436 /var/lib/nova -RUN yum -y install bridge-utils openstack-nova-common openvswitch python2-cinderclient python2-keystoneclient edk2-aarch64 && yum clean all && rm -rf /var/cache/yum +RUN yum -y install bridge-utils openstack-nova-common openvswitch python2-cinderclient python2-keystoneclient && yum clean all && rm -rf /var/cache/yum + +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then yum -y install edk2-aarch64 ; else yum -y install edk2-ovmf ; fi -RUN mkdir -p /usr/share/AAVMF \ - && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd \ - && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then mkdir -p /usr/share/AAVMF && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd ; else mkdir -p /usr/share/OVMF && ln -s /usr/share/edk2/ovmf/OVMF_CODE.fd /usr/share/OVMF/OVMF_CODE.fd && ln -s /usr/share/edk2/ovmf/OVMF_VARS.fd /usr/share/OVMF/OVMF_VARS.fd ; fi COPY extend_start.sh /usr/local/bin/kolla_extend_start diff --git a/kolla/rocky/20.03-lts-sp2/nova/nova-libvirt/Dockerfile b/kolla/rocky/20.03-lts-sp2/nova/nova-libvirt/Dockerfile index 42b10e3e453cd348a3faefdbe3f12babab71b4a5..6d27f51e9c1101c4d9b7fa511da8326aa361a516 100644 --- a/kolla/rocky/20.03-lts-sp2/nova/nova-libvirt/Dockerfile +++ b/kolla/rocky/20.03-lts-sp2/nova/nova-libvirt/Dockerfile @@ -1,15 +1,17 @@ FROM openeuler/openeuler-binary-base:rocky-20.03-lts-sp2 +ARG TARGETARCH + RUN usermod --append --home /var/lib/nova --groups kolla nova \ && usermod --append --groups qemu nova \ && mkdir -p /var/lib/nova \ && chown -R 42436:42436 /var/lib/nova -RUN yum -y install ceph-common cyrus-sasl-scram libguestfs libvirt-client libvirt-daemon libvirt-daemon-config-nwfilter libvirt-daemon-driver-nwfilter openvswitch qemu-block-rbd qemu edk2-aarch64 && yum clean all && rm -rf /var/cache/yum +RUN yum -y install ceph-common cyrus-sasl-scram libguestfs libvirt-client libvirt-daemon libvirt-daemon-config-nwfilter libvirt-daemon-driver-nwfilter openvswitch qemu-block-rbd qemu && yum clean all && rm -rf /var/cache/yum + +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then yum -y install edk2-aarch64 ; else yum -y install edk2-ovmf ; fi -RUN mkdir -p /usr/share/AAVMF \ - && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd \ - && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd +RUN if [[ "${TARGETARCH}" =~ arm ]] ; then mkdir -p /usr/share/AAVMF && ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd && ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd ; else mkdir -p /usr/share/OVMF && ln -s /usr/share/edk2/ovmf/OVMF_CODE.fd /usr/share/OVMF/OVMF_CODE.fd && ln -s /usr/share/edk2/ovmf/OVMF_VARS.fd /usr/share/OVMF/OVMF_VARS.fd ; fi COPY extend_start.sh /usr/local/bin/kolla_extend_start RUN chmod 755 /usr/local/bin/kolla_extend_start