From 061f6f275f4369b4c873805985590375fd4a7140 Mon Sep 17 00:00:00 2001 From: FFrog Date: Sun, 18 Sep 2022 10:16:30 +0800 Subject: [PATCH] add github action about kolla and fix some bugs --- .github/workflows/kolla-image-push.yml | 37 +++++++++++++++++++ kolla/build.sh | 4 +- kolla/queens/20.03-lts-sp2/base/Dockerfile | 4 +- ...Euler-x86-64.repo => openEuler-amd64.repo} | 0 ...uler-aarch64.repo => openEuler-arm64.repo} | 0 .../ironic/ironic-pxe/Dockerfile | 9 +++-- .../ironic/ironic-pxe/extend_start.sh | 2 +- .../20.03-lts-sp2/nova/nova-base/Dockerfile | 10 +++-- kolla/rocky/20.03-lts-sp2/base/Dockerfile | 4 +- ...Euler-x86-64.repo => openEuler-amd64.repo} | 0 ...uler-aarch64.repo => openEuler-arm64.repo} | 0 .../ironic/ironic-pxe/Dockerfile | 8 ++-- .../ironic/ironic-pxe/extend_start.sh | 2 +- .../20.03-lts-sp2/nova/nova-base/Dockerfile | 10 +++-- .../nova/nova-libvirt/Dockerfile | 10 +++-- 15 files changed, 74 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/kolla-image-push.yml rename kolla/queens/20.03-lts-sp2/base/{openEuler-x86-64.repo => openEuler-amd64.repo} (100%) rename kolla/queens/20.03-lts-sp2/base/{openEuler-aarch64.repo => openEuler-arm64.repo} (100%) rename kolla/rocky/20.03-lts-sp2/base/{openEuler-x86-64.repo => openEuler-amd64.repo} (100%) rename kolla/rocky/20.03-lts-sp2/base/{openEuler-aarch64.repo => openEuler-arm64.repo} (100%) diff --git a/.github/workflows/kolla-image-push.yml b/.github/workflows/kolla-image-push.yml new file mode 100644 index 00000000..8376983a --- /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 95c7f703..93234b11 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 9a15d18f..ac3d3b69 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 bb37a171..8541a454 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 f7297988..3ec959b9 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 af56ef16..ace99ca4 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 02843534..785b1032 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 a79ee95c..b2cc187c 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 0ba57a83..72cead3f 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 d78796e9..ddd5f03d 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 42b10e3e..6d27f51e 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 -- Gitee