Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1ed1a75
fix: CVE-2025-58068 eventlet
rackerchris Oct 16, 2025
d20e806
chore: patch base packages that must be done
cloudnull Oct 15, 2025
74a55d8
Merge pull request #104 from cloudnull/blazar-cve
cloudnull Oct 16, 2025
039370f
Update eventlet version to 0.40.3
rackerchris Oct 16, 2025
0a23479
Merge pull request #107 from rackerchris/eventlet-fix
cloudnull Oct 16, 2025
ffef14f
fix: Private key issue with autobahn package
Gaurav-t Oct 15, 2025
efe0d3a
Update image with 2025.1 and fix cve dependencies
anande Oct 17, 2025
150d6dd
Merge pull request #110 from anande/main
anande Oct 17, 2025
2e083ff
Merge pull request #108 from Gaurav-t/fix-cve-false-positive
cloudnull Oct 17, 2025
730c73d
Install curl in alert-proxy Dockerfile
rackerchris Oct 22, 2025
77c8e65
Remove curl from alert-proxy installation
rackerchris Oct 22, 2025
1856e79
feat: add qemu-block-extra package nova-efi container
rackerchris Oct 24, 2025
ba2ddb2
Merge pull request #113 from rackerchris/nova-ceph
cloudnull Oct 24, 2025
2eb278b
chore: upgrade to trixie
cloudnull Oct 24, 2025
c207b32
Merge pull request #112 from cloudnull/trixie
rackerchris Oct 24, 2025
cc78527
fix: add ceph packages to nova container
rackerchris Oct 24, 2025
39c42d2
Merge pull request #114 from rackerchris/nova-ceph-fixes
rackerchris Oct 24, 2025
5796c1d
Revert "fix: add ceph packages to nova container"
rackerchris Oct 24, 2025
eda523a
chore: add missing package
cloudnull Oct 24, 2025
3edb84e
Merge pull request #115 from rackerlabs/revert-114-nova-ceph-fixes
rackerchris Oct 24, 2025
207f533
fix: next try
rackerchris Oct 24, 2025
277fc4b
Merge pull request #116 from cloudnull/trixie-libguestfs
cloudnull Oct 24, 2025
6209787
Merge pull request #117 from rackerchris/python3-cephlibs
rackerchris Oct 24, 2025
7320d4f
chore: move openstack-venv to 313
cloudnull Oct 24, 2025
be871b5
Merge pull request #119 from cloudnull/trixie-313-openstack-venv
cloudnull Oct 24, 2025
a27861b
chore: update to py 3.13
cloudnull Oct 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/container-build-freezer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ on:
type: choice
options:
- master
- stable/2025.2
- stable/2025.1
project-version:
description: 'Version of OpenStack freezer to build, defaults to openstack-constraints if unspecified'
required: false
Expand All @@ -37,7 +37,7 @@ env:
IMAGE_NAME: ${{ github.repository }}/freezer
project_version: ${{ github.event.inputs.project-version }}
openstack_constraints: >
["stable/2025.2"]
["stable/2025.1"]

jobs:
init:
Expand Down Expand Up @@ -157,4 +157,4 @@ jobs:
build-args: |
OS_VERSION=${{ env.project_version != '' && env.project_version || matrix.openstack-constraints }}
OS_CONSTRAINTS=${{ matrix.openstack-constraints }}
CACHEBUST=${{ github.sha }}
CACHEBUST=${{ github.sha }}
180 changes: 180 additions & 0 deletions .github/workflows/container-build-nova-ceph.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
---
name: Create and publish a nova-ceph image

permissions:
actions: read
contents: read
id-token: write
packages: write
pull-requests: write
security-events: write

on:
pull_request:
paths:
- .github/workflows/container-build-nova-ceph.yaml
- ContainerFiles/nova-ceph
- scripts/nova-ceph-cve-patching.sh
schedule:
- cron: '0 0 * * 0' # Run Weekly at midnight UTC
workflow_dispatch:
inputs:
openstack-constraints:
description: 'Version of OpenStack Constraints to use'
required: true
default: "master"
type: choice
options:
- master
- stable/2024.1
- stable/2025.1
novnc-version:
description: 'Version of novnc to use'
required: true
default: " v1.6.0"
type: choice
options:
- "master"
- "v1.6.0"
project-version:
description: 'Version of OpenStack nova-ceph to build, defaults to openstack-constraints if unspecified'
required: false
type: string

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/nova-ceph
project_version: ${{ github.event.inputs.project-version }}
# NOTE(cloudnull): This is used to parse the workflow_dispatch inputs, sadly the inputs are not available in the
# workflow_dispatch event, so they're being stored in the environment variables. This is a
# workaround until there's a better way to handle this.
openstack_constraints: >
["stable/2024.1", "stable/2025.1"]
novnc_version: >
["v1.6.0"]

jobs:
init:
runs-on: ubuntu-latest
outputs:
openstack-constraints: ${{ steps.generate-matrix.outputs.openstack_constraints }}
novnc-version: ${{ steps.generate-matrix.outputs.novnc_version }}
steps:
- name: generate-matrix
id: generate-matrix
run: |
if [ "${{ github.event_name == 'workflow_dispatch' }}" = "true" ]; then
openstack_constraints="$(echo '${{ github.event.inputs.openstack-constraints }}' | jq -R '[select(length>0)]' | jq -c '.')"
novnc_version="$(echo '${{ github.event.inputs.novnc-version }}' | jq -R '[select(length>0)]' | jq -c '.')"
fi
echo "openstack_constraints=${openstack_constraints:-${{ env.openstack_constraints }}}" >> $GITHUB_OUTPUT
echo "novnc_version=${novnc_version:-${{ env.novnc_version }}}" >> $GITHUB_OUTPUT
build-and-push-image:
needs:
- init
strategy:
matrix:
openstack-constraints: ${{ fromJSON(needs.init.outputs.openstack-constraints)}}
novnc-version: ${{ fromJSON(needs.init.outputs.novnc-version) }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Dynamically set MY_DATE environment variable
run: echo "MY_DATE=$(date +%s)" >> $GITHUB_ENV
- name: Dynamically set OS_VERSION_PARSE environment variable
run: |
VERSION=$(echo -n "${{ env.project_version != '' && env.project_version || matrix.openstack-constraints }}" | awk -F'/' '{($2=="" ? x=$1 : x=$2); print x}')
echo "OS_VERSION_PARSE=${VERSION}" >> $GITHUB_ENV
NAME=$(echo -n "${{ env.IMAGE_NAME }}" | awk -F'/' '{print $NF}')
echo "CATEGORY_NAME=${VERSION}-${NAME}" >> $GITHUB_ENV
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ContainerFiles/nova-ceph
push: false
load: true
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
${{ env.IMAGE_NAME }}:local
labels: ${{ steps.meta.outputs.labels }}
build-args: |
OS_VERSION=${{ env.project_version != '' && env.project_version || matrix.openstack-constraints }}
OS_CONSTRAINTS=${{ matrix.openstack-constraints }}
NOVNC_VERSION=${{ matrix.novnc-version }}
CACHEBUST=${{ github.sha }}
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
with:
image-ref: '${{ env.IMAGE_NAME }}:local'
format: 'sarif'
output: 'trivy-results.sarif'
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
- name: Upload Trivy scan results to GitHub Security tab
continue-on-error: true
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'
category: "${{ env.CATEGORY_NAME }}"
- name: Run Trivy scanner
uses: aquasecurity/[email protected]
if: ${{ github.event_name == 'pull_request' }}
with:
image-ref: '${{ env.IMAGE_NAME }}:local'
output: trivy.txt
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
- name: Create trivy output file in markdown format
if: ${{ github.event_name == 'pull_request' }}
run: |
if [[ -s trivy.txt ]]; then
echo "### Security Output" > trivy-output.txt
echo '```terraform' >> trivy-output.txt
cat trivy.txt >> trivy-output.txt
echo '```' >> trivy-output.txt
fi
- name: Publish Trivy Output to Summary
if: ${{ github.event_name == 'pull_request' }}
run: |
if [[ -s trivy-output.txt ]]; then
{
cat trivy-output.txt
} >> $GITHUB_STEP_SUMMARY
fi
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ContainerFiles/nova-ceph
push: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.OS_VERSION_PARSE }}-latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.OS_VERSION_PARSE }}-${{ env.MY_DATE }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
OS_VERSION=${{ env.project_version != '' && env.project_version || matrix.openstack-constraints }}
OS_CONSTRAINTS=${{ matrix.openstack-constraints }}
NOVNC_VERSION=${{ matrix.novnc-version }}
CACHEBUST=${{ github.sha }}
2 changes: 1 addition & 1 deletion .github/workflows/container-build-openstack-venv.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ on:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/openstack-venv
PYTHON_VERSION: 3.12
PYTHON_VERSION: 3.13
CATEGORY_NAME: openstack-venv

jobs:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/container-build-zaqar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ jobs:
output: 'trivy-results.sarif'
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
skip-files: '**/autobahn/wamp/cryptosign.py'
- name: Upload Trivy scan results to GitHub Security tab
continue-on-error: true
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
Expand All @@ -128,6 +129,7 @@ jobs:
output: trivy.txt
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
skip-files: '**/autobahn/wamp/cryptosign.py'
- name: Create trivy output file in markdown format
if: ${{ github.event_name == 'pull_request' }}
run: |
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/alert-proxy
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest

FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
Expand All @@ -26,7 +26,7 @@ RUN find / -name '*.pyc' -delete \
&& rm -f /var/lib/openstack/lib/python*/site-packages/slapdtest/certs/client.key \
&& rm -f /var/lib/openstack/lib/python*/site-packages/slapdtest/certs/server.key

FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="alert-proxy"
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/apache
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
LABEL maintainer="Rackspace"
Expand Down Expand Up @@ -39,10 +39,10 @@
&& rm -f /var/lib/openstack/lib/python*/site-packages/slapdtest/certs/server.key


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="Apache2 with mod_wsgi ${MOD_WSGI_VERSION}"

Check warning on line 45 in ContainerFiles/apache

View workflow job for this annotation

GitHub Actions / build-and-push-image (5.0.2)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$MOD_WSGI_VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

Check warning on line 45 in ContainerFiles/apache

View workflow job for this annotation

GitHub Actions / build-and-push-image (5.0.2)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$MOD_WSGI_VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
LABEL org.opencontainers.image.description="Apache2 built for the enterprise."
COPY --from=dependency_build /var/lib/openstack /var/lib/openstack
RUN export DEBIAN_FRONTEND=noninteractive \
Expand Down
6 changes: 3 additions & 3 deletions ContainerFiles/barbican
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG OS_VERSION=master
Expand Down Expand Up @@ -46,13 +46,13 @@ RUN find / -name '*.pyc' -delete \
&& find / -name '*.pyo' -delete \
&& find / -name '__pycache__' -delete \
&& find / -name '*.whl' -delete \
&& rm -f /var/lib/openstack/lib/python3.12/site-packages/kmip/demos/certs/server.key \
&& rm -f /var/lib/openstack/lib/python3.13/site-packages/kmip/demos/certs/server.key \
&& rm -f /var/lib/openstack/lib/python*/site-packages/slapdtest/certs/client.key \
&& rm -f /var/lib/openstack/lib/python*/site-packages/slapdtest/certs/server.key \
&& sed -i '/^Usage/,/^Documentation\n^-.*$/d' /var/lib/openstack/lib/python*/site-packages/PyJWT-*.dist-info/METADATA


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="barbican"
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/blazar
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG OS_VERSION=master
Expand Down Expand Up @@ -51,7 +51,7 @@ RUN find / -name '*.pyc' -delete \
&& sed -i '/^Usage/,/^Documentation\n^-.*$/d' /var/lib/openstack/lib/python*/site-packages/PyJWT-*.dist-info/METADATA


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="blazar"
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/ceph-libs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG CEPH_VERSION=main
Expand Down Expand Up @@ -102,7 +102,7 @@ WORKDIR /opt/ceph/build
RUN ninja rbd rados cephfs
RUN ninja install

FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:3.12-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:3.13-latest
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="ceph-libs"
Expand Down
6 changes: 3 additions & 3 deletions ContainerFiles/cinder
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG OS_VERSION=master
Expand Down Expand Up @@ -55,15 +55,15 @@ RUN find / -name '*.pyc' -delete \
&& sed -i '/^Usage/,/^Documentation\n^-.*$/d' /var/lib/openstack/lib/python*/site-packages/PyJWT-*.dist-info/METADATA


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="cinder"
LABEL org.opencontainers.image.description="OpenStack Service (cinder) built for the enterprise."
COPY --from=dependency_build /var/lib/openstack /var/lib/openstack
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get update && apt-get upgrade -y \
&& apt-get install --no-install-recommends -y libxml2 multipath-tools open-iscsi qemu-block-extra qemu-utils systemctl lsscsi nvme-cli sudo nfs-common \
&& apt-get install --no-install-recommends -y libxml2 multipath-tools open-iscsi qemu-block-extra qemu-utils systemd lsscsi nvme-cli sudo nfs-common \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/cloudkitty
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG OS_VERSION=master
Expand Down Expand Up @@ -49,7 +49,7 @@ RUN find / -name '*.pyc' -delete \
&& sed -i '/^Usage/,/^Documentation\n^-.*$/d' /var/lib/openstack/lib/python*/site-packages/PyJWT-*.dist-info/METADATA


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="cloudkitty"
Expand Down
4 changes: 2 additions & 2 deletions ContainerFiles/designate
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.12-latest
ARG VENV_TAG=3.13-latest
FROM ghcr.io/rackerlabs/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
ARG OS_VERSION=master
Expand Down Expand Up @@ -49,7 +49,7 @@ RUN find / -name '*.pyc' -delete \
&& sed -i '/^Usage/,/^Documentation\n^-.*$/d' /var/lib/openstack/lib/python*/site-packages/PyJWT-*.dist-info/METADATA


FROM python:3.12-slim-bookworm
FROM python:3.13-slim-trixie
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="designate"
Expand Down
Loading
Loading