CI: Use precompiled Director release - #341
Closed
neddp wants to merge 22 commits into
Closed
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
neddp
force-pushed
the
speed-up-bats-director
branch
7 times, most recently
from
August 31, 2026 11:44
b0ec870 to
cf8e35f
Compare
The BATS director previously deployed on a jammy stemcell with the bosh and bpm releases pulled from source (via misc/source-releases/bosh.yml plus a file:// override), so create-env recompiled every director package on the VM (~25 min). Let the director use bosh-deployment's compiled bosh/bpm releases instead. These are built for noble, and bosh-deployment/openstack/cpi.yml already pins a matching noble stemcell at /resource_pools/name=vms/ stemcell, kept in lockstep with the compiled releases by bosh-deployment CI. So: - Drop the source-releases/bosh.yml overlay and the file:// bosh override; bosh and bpm now resolve to the compiled noble URLs in bosh-deployment/bosh.yml. - Narrow deployment-configuration.yml to patch only cloud_properties, letting cpi.yml's noble stemcell stand as the director host OS. - Drop the now-unused stemcell-director input/get, the source-release fallback (prepare_bosh_release / find_bosh_compiled_release, which queried a bucket that no longer exists), and the bosh-release input. The stemcell under test (BATS/lifecycle) stays jammy. The director host OS tracks bosh-deployment's compiled release automatically, so there is no stemcell version to pin here.
bosh-deployment/openstack/cpi.yml wires the Ruby openstack_cpi job, whose openstack-ruby-3.1 package compiles at create-env time (~9 min on the worker plus ~5 min on the director VM). Add use-golang-cpi.yml, applied after cpi.yml, to point the director's cpi_job, cloud_provider template, and bosh instance-group job at openstack_cpi_golang instead. The Go job takes the same openstack.* properties and only needs the golang-1-linux package, so create-env no longer builds the Ruby runtime. BATS now exercises the Go CPI end-to-end against DevStack.
The bosh-release resource_type (dpb587/bosh-release-resource) is not
referenced by any resource, and teardown-director.{yml,sh} is not
referenced by the pipeline. Remove them.
Drop 'set -x', which dumped the whole command trace before BATS — including the jumpbox SSH key, admin password, and CA cert. Also fix shellcheck: split the secret exports (SC2155), quote expansions (SC2086), read bats_rspec_tags into an array, and annotate the runtime-exported vars.
… system Ruby, bump BOSH CLI to 7.10.10
neddp
force-pushed
the
speed-up-bats-director
branch
from
September 1, 2026 05:53
d45cb78 to
27a762f
Compare
|
…ort Ruby CPI path
Aligns image Ruby version with Gemfile.lock generated by bump-gems (which runs under Ruby 3.4 from bosh/ruby-release). Mismatched versions caused bundler to re-resolve bosh_cpi down to 0.4.3 which lacks registry_client.
ruby-install tries to apt-install its own deps (bison, libgdbm-dev, libreadline-dev, libncurses5-dev) after the apt cache is cleared. Fix: pre-install all Ruby build deps before clearing the cache and pass --no-install-deps so ruby-install skips its own apt step.
The network_id hash element was being serialized as
{network_id: "..."} instead of network_id=... which Neutron rejects
with InvalidInput. Both fixed_ips filter elements must be strings.
The fixed_ips array mixed a string with a Ruby keyword arg, producing
{network_id: "..."} when serialized — Neutron rejects it (400 Bad Request).
Both elements must be "key=value" strings per the Neutron API.
bosh_cpi 3.0.0 requires Ruby >= 3.3.0. The package and job were still wired to openstack-ruby-3.1 so bundler failed during create-env with a Ruby version conflict. Point everything at openstack-ruby-3.4.
Ruby 3.4 changed three inspect behaviors:
- URI error message: "bad URI(is not URI?)" -> "bad URI (is not URI?)"
- String-keyed hash: "key"=>"val" -> "key" => "val" (spaces around =>)
- Symbol-keyed hash: {:k=>"val"} -> {k: "val"} (new-style keyword syntax)
- Make sure the go and ruby bats runs after each other - Make sure the bumps have a weekly constraint
… release - run-devstack-tests-ruby-cpi now gates on run-devstack-tests (not run-specs) - automatically-release-new-patch and promote-candidate now gate on run-devstack-tests-ruby-cpi so both CPI variants must pass before release - Add weekly trigger to bump-ruby-deps (matching bump-go-deps) - Wrap bats terraform steps in do/ensure to destroy Neutron resources on failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.