Add OpenStack provider support#567
Conversation
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>
|
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? |
|
@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? |
|
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”. |
|
@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 |
Summary
Providerinterface (DeployAgent,RemoveAgent,ListDeployedAgentNames) via OpenStack Compute (Nova) APIConfiguration flags
--openstack-auth-urlWOODPECKER_OPENSTACK_AUTH_URL--openstack-usernameWOODPECKER_OPENSTACK_USERNAME--openstack-passwordWOODPECKER_OPENSTACK_PASSWORD--openstack-tenant-nameWOODPECKER_OPENSTACK_TENANT_NAME--openstack-domain-nameWOODPECKER_OPENSTACK_DOMAIN_NAMEDefault)--openstack-regionWOODPECKER_OPENSTACK_REGION--openstack-flavorWOODPECKER_OPENSTACK_FLAVOR--openstack-imageWOODPECKER_OPENSTACK_IMAGE--openstack-networkWOODPECKER_OPENSTACK_NETWORK--openstack-security-groupsWOODPECKER_OPENSTACK_SECURITY_GROUPS--openstack-keypairWOODPECKER_OPENSTACK_KEYPAIR--openstack-floating-ip-poolWOODPECKER_OPENSTACK_FLOATING_IP_POOL--openstack-metadataWOODPECKER_OPENSTACK_METADATATest plan
go build ./...compiles successfullygo test ./...passes all testsCloses #278