diff --git a/.github/workflows/overcloud-host-image-build.yml b/.github/workflows/overcloud-host-image-build.yml index 905e6d7b0..b6884b681 100644 --- a/.github/workflows/overcloud-host-image-build.yml +++ b/.github/workflows/overcloud-host-image-build.yml @@ -280,6 +280,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID }} if: inputs.rocky9 && steps.build_rocky_9.outcome == 'success' - name: Upload Rocky Linux 9 overcloud host image to other Dev Cloud (Leafcloud/SMS) @@ -294,6 +295,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID_OTHER_CLOUD }} if: inputs.rocky9 && steps.build_rocky_9.outcome == 'success' - name: Build an Ubuntu Jammy 22.04 overcloud host image @@ -348,6 +350,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID }} if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success' - name: Upload Ubuntu Jammy overcloud host image to other Dev Cloud (Leafcloud/SMS) @@ -362,6 +365,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID_OTHER_CLOUD }} if: inputs.ubuntu-jammy && steps.build_ubuntu_jammy.outcome == 'success' - name: Build an Ubuntu Noble 24.04 overcloud host image @@ -416,6 +420,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID }} if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success' - name: Upload Ubuntu Noble overcloud host image to other Dev Cloud (Leafcloud/SMS) @@ -430,6 +435,7 @@ jobs: CLOUDS_YAML: ${{ secrets.CLOUDS_YAML_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID_OTHER_CLOUD }} OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET_OTHER_CLOUD }} + HOST_IMAGE_BUILD_SHARE_PROJECT_ID: ${{ vars.HOST_IMAGE_BUILD_SHARE_PROJECT_ID_OTHER_CLOUD }} if: inputs.ubuntu-noble && steps.build_ubuntu_noble.outcome == 'success' diff --git a/etc/kayobe/ansible/openstack-host-image-upload.yml b/etc/kayobe/ansible/openstack-host-image-upload.yml index daff0549d..740ca0aa3 100644 --- a/etc/kayobe/ansible/openstack-host-image-upload.yml +++ b/etc/kayobe/ansible/openstack-host-image-upload.yml @@ -32,7 +32,9 @@ - name: Ensure dependencies are installed ansible.builtin.pip: - name: openstacksdk + name: + - openstacksdk + - python-openstackclient - name: Upload an image to Glance openstack.cloud.image: @@ -42,6 +44,16 @@ disk_format: qcow2 state: present filename: "{{ local_image_path }}" + visibility: shared + register: image + + # Add the image to the chosen project + - name: Add image to stackhpc-dev project + ansible.builtin.command: "openstack image add project {{ image.image.id }} '{{ lookup('ansible.builtin.env', 'HOST_IMAGE_BUILD_SHARE_PROJECT_ID') }}'" + + # Accept the image in the receiving project + - name: Accept image membership in stackhpc-dev project + ansible.builtin.command: "openstack image set {{ image.image.id }} --project '{{ lookup('ansible.builtin.env', 'HOST_IMAGE_BUILD_SHARE_PROJECT_ID') }}' --accept" always: - name: Remove clouds.yaml