Skip to content

Add OpenStack provider support#567

Open
mendarb wants to merge 4 commits into
woodpecker-ci:mainfrom
mendarb:feat/openstack-provider
Open

Add OpenStack provider support#567
mendarb wants to merge 4 commits into
woodpecker-ci:mainfrom
mendarb:feat/openstack-provider

Conversation

@mendarb

@mendarb mendarb commented Mar 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add OpenStack as a new cloud provider for the Woodpecker CI autoscaler using the gophercloud SDK (v2)
  • Implement the Provider interface (DeployAgent, RemoveAgent, ListDeployedAgentNames) via OpenStack Compute (Nova) API
  • Support standard OpenStack authentication (Keystone), flavor/image selection, network, security groups, SSH keypairs, floating IPs, and server metadata

Configuration flags

Flag Env var Description
--openstack-auth-url WOODPECKER_OPENSTACK_AUTH_URL Keystone endpoint
--openstack-username WOODPECKER_OPENSTACK_USERNAME Username
--openstack-password WOODPECKER_OPENSTACK_PASSWORD Password
--openstack-tenant-name WOODPECKER_OPENSTACK_TENANT_NAME Project/tenant name
--openstack-domain-name WOODPECKER_OPENSTACK_DOMAIN_NAME Domain (default: Default)
--openstack-region WOODPECKER_OPENSTACK_REGION Region
--openstack-flavor WOODPECKER_OPENSTACK_FLAVOR Flavor name or ID
--openstack-image WOODPECKER_OPENSTACK_IMAGE Image name or ID
--openstack-network WOODPECKER_OPENSTACK_NETWORK Network UUID
--openstack-security-groups WOODPECKER_OPENSTACK_SECURITY_GROUPS Security groups
--openstack-keypair WOODPECKER_OPENSTACK_KEYPAIR SSH keypair name
--openstack-floating-ip-pool WOODPECKER_OPENSTACK_FLOATING_IP_POOL Floating IP pool
--openstack-metadata WOODPECKER_OPENSTACK_METADATA Server metadata (key=value)

Test plan

  • go build ./... compiles successfully
  • go test ./... passes all tests
  • Manual testing with an OpenStack environment (DevStack or real cloud)

Closes #278

Implement OpenStack as a new cloud provider for the autoscaler using
the gophercloud SDK. This enables autoscaling Woodpecker CI agents on
any OpenStack-based cloud infrastructure.

The provider supports all standard OpenStack authentication options
(Keystone v2/v3), flavor/image selection, network configuration,
security groups, SSH keypairs, and server metadata for pool filtering.

Closes woodpecker-ci#278

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@6543 6543 added feature Add new feature new provider Add new cloud provider labels Apr 21, 2026
@gerbsen

gerbsen commented Apr 24, 2026

Copy link
Copy Markdown

I do also have interest in this feature and I do have an openstack cluster for testing available. Is this something you would consider merging?

@xoxys

xoxys commented Apr 24, 2026

Copy link
Copy Markdown
Member

@gerbsen Help would be appreciated, however this PR looks like fully AI generated and incomplete. Especially the implemented tests are completely useless. Would you be able to finish/polish this PR?

@xoxys xoxys changed the title feat: add OpenStack provider support Add OpenStack provider support Apr 24, 2026
@gerbsen

gerbsen commented May 5, 2026

Copy link
Copy Markdown

Yeah, I've seen that this is generated by AI. :/ We will have to decide within our team, if we want to spent resources on this (there are some good arguments for it) but no final decision has been made. I just wanted to know first, if this would be something you would actually merge. I interpret your answer as a „yes”.

@gerbsen gerbsen mentioned this pull request Jul 3, 2026
@gerbsen

gerbsen commented Jul 3, 2026

Copy link
Copy Markdown

@xoxys not sure if you get notified on my comments in #278 but we made great progress and want to get this upstream if possible in the coming days: https://gitlab.com/alasca.cloud/focis/woodpecker-autoscaler/-/merge_requests/2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Add new feature new provider Add new cloud provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add OpenStack provider

5 participants