Skip to content

Remove deprecated Ruby OpenStack CPI - #362

Open
dudejas wants to merge 3 commits into
cloudfoundry:masterfrom
dudejas:delete_ruby_source
Open

Remove deprecated Ruby OpenStack CPI#362
dudejas wants to merge 3 commits into
cloudfoundry:masterfrom
dudejas:delete_ruby_source

Conversation

@dudejas

@dudejas dudejas commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Delete the Ruby CPI implementation, its BOSH packages, job, CI tasks, developer scripts, and docs. The Go CPI is the sole implementation going forward.

  • Remove src/bosh_openstack_cpi/ (Ruby source + vendored gems)
  • Remove packages/bosh_openstack_cpi/, packages/openstack-ruby-3.{1,4}/
  • Remove jobs/openstack_cpi/ (keep jobs/openstack_cpi_golang/)
  • Remove ci/tasks/run-unit-specs.{sh,yml} and run-lifecycle.{sh,yml}
  • Remove scripts/check-ruby-version, rubocop-staged, test-unit, test-unit-erb
  • Drop rubocop pre-commit hook from git-hooks/pre-commit
  • Remove LFS filter rule for vendored gems from .gitattributes
  • Remove Ruby prerequisites and test-unit sections from CONTRIBUTING.md

Delete the Ruby CPI implementation, its BOSH packages, job, CI tasks,
developer scripts, and docs. The Go CPI is the sole implementation going
forward.

- Remove src/bosh_openstack_cpi/ (Ruby source + vendored gems)
- Remove packages/bosh_openstack_cpi/, packages/openstack-ruby-3.{1,4}/
- Remove jobs/openstack_cpi/ (keep jobs/openstack_cpi_golang/)
- Remove ci/tasks/run-unit-specs.{sh,yml} and run-lifecycle.{sh,yml}
- Remove scripts/check-ruby-version, rubocop-staged, test-unit, test-unit-erb
- Drop rubocop pre-commit hook from git-hooks/pre-commit
- Remove LFS filter rule for vendored gems from .gitattributes
- Remove Ruby prerequisites and test-unit sections from CONTRIBUTING.md
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 176 files, which is 76 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 984e551d-02b1-4074-bf09-440d89eef15c

📥 Commits

Reviewing files that changed from the base of the PR and between 84d280f and 8f6a805.

⛔ Files ignored due to path filters (10)
  • packages/openstack-ruby-3.1/spec.lock is excluded by !**/*.lock
  • packages/openstack-ruby-3.4/spec.lock is excluded by !**/*.lock
  • src/bosh_openstack_cpi/Gemfile.lock is excluded by !**/*.lock
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_create_disk.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_create_vm.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_createstemcell.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_delete_disk.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_delete_vm.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_deletestemcell.png is excluded by !**/*.png
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_initialize.png is excluded by !**/*.png
📒 Files selected for processing (176)
  • .gitattributes
  • CONTRIBUTING.md
  • ci/ops_files/use-golang-cpi.yml
  • ci/tasks/run-lifecycle.sh
  • ci/tasks/run-lifecycle.yml
  • ci/tasks/run-unit-specs.sh
  • ci/tasks/run-unit-specs.yml
  • git-hooks/pre-commit
  • jobs/openstack_cpi/monit
  • jobs/openstack_cpi/spec
  • jobs/openstack_cpi/templates/cacert.pem.erb
  • jobs/openstack_cpi/templates/cpi.erb
  • jobs/openstack_cpi/templates/cpi.json.erb
  • packages/bosh_openstack_cpi/packaging
  • packages/bosh_openstack_cpi/pre_packaging
  • packages/bosh_openstack_cpi/spec
  • scripts/check-ruby-version
  • scripts/rubocop-staged
  • scripts/test-unit
  • scripts/test-unit-erb
  • src/bosh_openstack_cpi/.bundle/config
  • src/bosh_openstack_cpi/.gitignore
  • src/bosh_openstack_cpi/.rspec
  • src/bosh_openstack_cpi/.rubocop.yml
  • src/bosh_openstack_cpi/.ruby-version
  • src/bosh_openstack_cpi/Gemfile
  • src/bosh_openstack_cpi/Rakefile
  • src/bosh_openstack_cpi/bin/bosh_openstack_console
  • src/bosh_openstack_cpi/bin/openstack_cpi
  • src/bosh_openstack_cpi/docs/bosh_cpi.md
  • src/bosh_openstack_cpi/docs/cpi_config.md
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_create_disk.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_create_vm.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_createstemcell.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_delete_disk.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_delete_vm.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_deletestemcell.graffle
  • src/bosh_openstack_cpi/docs/images/openstack_cpi_initialize.graffle
  • src/bosh_openstack_cpi/lib/bosh_openstack_cpi.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/availability_zone_provider.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/cloud.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/cpi_lambda.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/dynamic_network.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/excon_logging_instrumentor.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/floating_ip.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/helpers.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/instance_type_mapper.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/loadbalancer_configurator.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/manual_network.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/network.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/network_configurator.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/noop_registry.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/openstack.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/private_network.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/request_message.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/resource_pool.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/response_message.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/security_groups.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/server.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/stemcell.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/stemcell_creator.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/tag_manager.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/vip_network.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/vm_creator.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/vm_factory.rb
  • src/bosh_openstack_cpi/lib/cloud/openstack/volume_configurator.rb
  • src/bosh_openstack_cpi/spec/assets/sample_config.yml
  • src/bosh_openstack_cpi/spec/integration/calculate_vm_cloud_properties_spec.rb
  • src/bosh_openstack_cpi/spec/integration/cpi_logging_spec.rb
  • src/bosh_openstack_cpi/spec/integration/image_spec.rb
  • src/bosh_openstack_cpi/spec/integration/lifecycle_spec.rb
  • src/bosh_openstack_cpi/spec/integration/lifecycle_v2_spec.rb
  • src/bosh_openstack_cpi/spec/integration/spec_helper.rb
  • src/bosh_openstack_cpi/spec/integration/support/integration_config.rb
  • src/bosh_openstack_cpi/spec/integration/support/lifecycle_helpers.rb
  • src/bosh_openstack_cpi/spec/integration/volume_spec.rb
  • src/bosh_openstack_cpi/spec/spec_helper.rb
  • src/bosh_openstack_cpi/spec/unit/attach_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/availability_zone_provider_spec.rb
  • src/bosh_openstack_cpi/spec/unit/bin/openstack_cpi_spec.rb
  • src/bosh_openstack_cpi/spec/unit/bosh_release/jobs/cpi/templates/cpi.json.erb_spec.rb
  • src/bosh_openstack_cpi/spec/unit/cloud_spec.rb
  • src/bosh_openstack_cpi/spec/unit/configure_networks_spec.rb
  • src/bosh_openstack_cpi/spec/unit/cpi_lambda_spec.rb
  • src/bosh_openstack_cpi/spec/unit/create_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/create_stemcell_spec.rb
  • src/bosh_openstack_cpi/spec/unit/create_vm_spec.rb
  • src/bosh_openstack_cpi/spec/unit/delete_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/delete_snapshot_spec.rb
  • src/bosh_openstack_cpi/spec/unit/delete_stemcell_spec.rb
  • src/bosh_openstack_cpi/spec/unit/delete_vm_spec.rb
  • src/bosh_openstack_cpi/spec/unit/detach_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/dynamic_network_spec.rb
  • src/bosh_openstack_cpi/spec/unit/excon_logging_instrumentor_spec.rb
  • src/bosh_openstack_cpi/spec/unit/floating_ip_spec.rb
  • src/bosh_openstack_cpi/spec/unit/has_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/has_vm_spec.rb
  • src/bosh_openstack_cpi/spec/unit/helpers_spec.rb
  • src/bosh_openstack_cpi/spec/unit/instance_type_mapper_spec.rb
  • src/bosh_openstack_cpi/spec/unit/loadbalancer_configurator_spec.rb
  • src/bosh_openstack_cpi/spec/unit/manual_network_spec.rb
  • src/bosh_openstack_cpi/spec/unit/network_configurator_spec.rb
  • src/bosh_openstack_cpi/spec/unit/noop_registry_spec.rb
  • src/bosh_openstack_cpi/spec/unit/openstack_spec.rb
  • src/bosh_openstack_cpi/spec/unit/reboot_vm_spec.rb
  • src/bosh_openstack_cpi/spec/unit/request_message_spec.rb
  • src/bosh_openstack_cpi/spec/unit/resize_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/resource_pool_spec.rb
  • src/bosh_openstack_cpi/spec/unit/response_message_spec.rb
  • src/bosh_openstack_cpi/spec/unit/security_groups_spec.rb
  • src/bosh_openstack_cpi/spec/unit/set_disk_metadata_spec.rb
  • src/bosh_openstack_cpi/spec/unit/set_vm_metadata_spec.rb
  • src/bosh_openstack_cpi/spec/unit/snapshot_disk_spec.rb
  • src/bosh_openstack_cpi/spec/unit/stemcell_creator_spec.rb
  • src/bosh_openstack_cpi/spec/unit/tag_manager_spec.rb
  • src/bosh_openstack_cpi/spec/unit/vip_network_spec.rb
  • src/bosh_openstack_cpi/spec/unit/vm_creator_spec.rb
  • src/bosh_openstack_cpi/spec/unit/volume_configurator_spec.rb
  • src/bosh_openstack_cpi/vendor/package/addressable-2.8.7.gem
  • src/bosh_openstack_cpi/vendor/package/ast-2.4.3.gem
  • src/bosh_openstack_cpi/vendor/package/bigdecimal-3.2.2.gem
  • src/bosh_openstack_cpi/vendor/package/bosh-template-2.4.0.gem
  • src/bosh_openstack_cpi/vendor/package/bosh_common-2.0.0.gem
  • src/bosh_openstack_cpi/vendor/package/bosh_cpi-2.6.0.gem
  • src/bosh_openstack_cpi/vendor/package/builder-3.3.0.gem
  • src/bosh_openstack_cpi/vendor/package/byebug-12.0.0.gem
  • src/bosh_openstack_cpi/vendor/package/coderay-1.1.3.gem
  • src/bosh_openstack_cpi/vendor/package/crack-1.0.0.gem
  • src/bosh_openstack_cpi/vendor/package/diff-lcs-1.6.2.gem
  • src/bosh_openstack_cpi/vendor/package/excon-1.2.8.gem
  • src/bosh_openstack_cpi/vendor/package/fog-core-2.6.0.gem
  • src/bosh_openstack_cpi/vendor/package/fog-json-1.2.0.gem
  • src/bosh_openstack_cpi/vendor/package/fog-openstack-1.1.5.gem
  • src/bosh_openstack_cpi/vendor/package/formatador-1.1.1.gem
  • src/bosh_openstack_cpi/vendor/package/hashdiff-1.2.0.gem
  • src/bosh_openstack_cpi/vendor/package/httpclient-2.8.3.gem
  • src/bosh_openstack_cpi/vendor/package/json-2.13.0.gem
  • src/bosh_openstack_cpi/vendor/package/language_server-protocol-3.17.0.5.gem
  • src/bosh_openstack_cpi/vendor/package/lint_roller-1.1.0.gem
  • src/bosh_openstack_cpi/vendor/package/little-plugger-1.1.4.gem
  • src/bosh_openstack_cpi/vendor/package/logger-1.7.0.gem
  • src/bosh_openstack_cpi/vendor/package/logging-2.2.2.gem
  • src/bosh_openstack_cpi/vendor/package/membrane-1.1.0.gem
  • src/bosh_openstack_cpi/vendor/package/method_source-1.1.0.gem
  • src/bosh_openstack_cpi/vendor/package/mime-types-3.7.0.gem
  • src/bosh_openstack_cpi/vendor/package/mime-types-data-3.2025.0715.gem
  • src/bosh_openstack_cpi/vendor/package/multi_json-1.17.0.gem
  • src/bosh_openstack_cpi/vendor/package/netaddr-2.0.6.gem
  • src/bosh_openstack_cpi/vendor/package/openssl-3.3.0.gem
  • src/bosh_openstack_cpi/vendor/package/parallel-1.27.0.gem
  • src/bosh_openstack_cpi/vendor/package/parser-3.3.8.0.gem
  • src/bosh_openstack_cpi/vendor/package/prism-1.4.0.gem
  • src/bosh_openstack_cpi/vendor/package/pry-0.15.2.gem
  • src/bosh_openstack_cpi/vendor/package/pry-byebug-3.11.0.gem
  • src/bosh_openstack_cpi/vendor/package/public_suffix-6.0.2.gem
  • src/bosh_openstack_cpi/vendor/package/racc-1.8.1.gem
  • src/bosh_openstack_cpi/vendor/package/rainbow-3.1.1.gem
  • src/bosh_openstack_cpi/vendor/package/rake-13.3.0.gem
  • src/bosh_openstack_cpi/vendor/package/rb-readline-0.5.5.gem
  • src/bosh_openstack_cpi/vendor/package/regexp_parser-2.10.0.gem
  • src/bosh_openstack_cpi/vendor/package/rexml-3.4.1.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-3.13.1.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-core-3.13.5.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-expectations-3.13.5.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-its-2.0.0.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-mocks-3.13.5.gem
  • src/bosh_openstack_cpi/vendor/package/rspec-support-3.13.4.gem
  • src/bosh_openstack_cpi/vendor/package/rubocop-1.78.0.gem
  • src/bosh_openstack_cpi/vendor/package/rubocop-ast-1.46.0.gem
  • src/bosh_openstack_cpi/vendor/package/ruby-progressbar-1.13.0.gem
  • src/bosh_openstack_cpi/vendor/package/semi_semantic-1.2.0.gem
  • src/bosh_openstack_cpi/vendor/package/timecop-0.9.10.gem
  • src/bosh_openstack_cpi/vendor/package/unicode-display_width-3.1.4.gem
  • src/bosh_openstack_cpi/vendor/package/unicode-emoji-4.0.4.gem
  • src/bosh_openstack_cpi/vendor/package/webmock-3.25.1.gem

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The retained USE_GOLANG_CPI=false deployment path still requests the deleted openstack_cpi job and will fail.

Pull request overview

Removes the deprecated Ruby OpenStack CPI so the Go CPI becomes the sole implementation.

Changes:

  • Deletes Ruby CPI source, tests, vendored gems, BOSH job, and packages.
  • Removes Ruby-specific scripts, CI tasks, hooks, and documentation.
  • Removes the Git LFS rule used for vendored gems.
File summaries
File Description
src/bosh_openstack_cpi/** Deletes the Ruby CPI implementation, tests, configuration, documentation, and vendored dependencies.
packages/bosh_openstack_cpi/** Deletes the Ruby CPI BOSH package.
packages/openstack-ruby-3.1/spec.lock Removes the obsolete Ruby runtime package lock.
packages/openstack-ruby-3.4/spec.lock Removes the obsolete Ruby runtime package lock.
jobs/openstack_cpi/** Deletes the Ruby CPI BOSH job and templates.
ci/tasks/run-unit-specs.{sh,yml} Removes Ruby unit-test CI tasks.
ci/tasks/run-lifecycle.{sh,yml} Removes Ruby lifecycle-test CI tasks.
scripts/check-ruby-version Removes Ruby setup tooling.
scripts/rubocop-staged Removes Ruby lint tooling.
scripts/test-unit Removes the Ruby unit-test script.
scripts/test-unit-erb Removes the Ruby template-test script.
git-hooks/pre-commit Removes the RuboCop hook invocation.
.gitattributes Removes Git LFS handling for vendored gems.
CONTRIBUTING.md Removes Ruby prerequisites and test instructions.
Review details

Suppressed comments (1)

jobs/openstack_cpi/spec:1

  • Deleting this job leaves the exposed USE_GOLANG_CPI=false path in ci/tasks/deploy-manual-networking.{sh,yml} without the replacement ops file. That path still generates a manifest requesting openstack_cpi, which is absent from the dev release, so bosh create-env will fail. Since Go is now mandatory, remove the flag/false branch and always apply use-golang-cpi.yml, or retain a compatible job alias.
  • Files reviewed: 106/185 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@aramprice aramprice left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So exciting to see this, nice work!

@github-project-automation github-project-automation Bot moved this from Inbox to Pending Merge | Prioritized in Foundational Infrastructure Working Group Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Pending Merge | Prioritized

Development

Successfully merging this pull request may close these issues.

3 participants