Skip to content

CI: Use precompiled Director release - #341

Closed
neddp wants to merge 22 commits into
masterfrom
speed-up-bats-director
Closed

CI: Use precompiled Director release#341
neddp wants to merge 22 commits into
masterfrom
speed-up-bats-director

Conversation

@neddp

@neddp neddp commented Aug 28, 2026

Copy link
Copy Markdown
Member

No description provided.

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

@neddp neddp changed the title CI: Use compiled Director release CI: Use precompiled Director release Aug 28, 2026
@neddp
neddp force-pushed the speed-up-bats-director branch 7 times, most recently from b0ec870 to cf8e35f Compare August 31, 2026 11:44
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.
@neddp
neddp force-pushed the speed-up-bats-director branch from d45cb78 to 27a762f Compare September 1, 2026 05:53
@linux-foundation-easycla

linux-foundation-easycla Bot commented Sep 1, 2026

Copy link
Copy Markdown

CLA Not Signed

neddp and others added 7 commits September 1, 2026 09:13
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.
neddp and others added 5 commits September 1, 2026 13:44
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
@neddp neddp closed this Sep 3, 2026
@neddp
neddp deleted the speed-up-bats-director branch September 6, 2026 07:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants