Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐞 Director correctly places runtime config jobs... #2475

Merged
merged 1 commit into from
Nov 16, 2023

Conversation

cunnie
Copy link
Member

@cunnie cunnie commented Nov 2, 2023

...when the deployment manifest does not list the stemcell OS.

Manifests can select stemcells by name or OS (but not both). https://bosh.io/docs/manifest-v2/#stemcells

Runtime config jobs can be placed by stemcell OS. https://bosh.io/docs/runtime-config/#placement-rules

If your manifest uses stemcell name, even if that stemcell has an OS that matches the runtime config, it will not be used. Stemcells in manifest:

stemcells:
- alias: default
  name: bosh-aws-xen-hvm-ubuntu-jammy-go_agent
  version: latest

Placement rules in runtime config:

include:
  stemcell:
  - os: ubuntu-jammy

This commit fixes that shortcoming; now if the manifest specifies stemcells by name, the Director will appropriately place the runtime config jobs on the VMs.

...when the deployment manifest does not list the stemcell OS.

Manifests can select stemcells by name or OS (but not both). <https://bosh.io/docs/manifest-v2/#stemcells>

Runtime config jobs can be placed by stemcell OS. <https://bosh.io/docs/runtime-config/#placement-rules>

If your manifest uses stemcell name, even if that stemcell has an OS that matches the runtime config, it will not be used.
Stemcells in manifest:
```
stemcells:
- alias: default
  name: bosh-aws-xen-hvm-ubuntu-jammy-go_agent
  version: latest
```
Placement rules in runtime config:
```
include:
  stemcell:
  - os: ubuntu-jammy
```

This commit fixes that shortcoming; now if the manifest specifies
stemcells by name, the Director will appropriately place the runtime
config jobs on the VMs.

Signed-off-by: Brian Cunnie <bcunnie@vmware.com>
@jpalermo jpalermo requested review from a team, beyhan and selzoc and removed request for a team November 9, 2023 16:25
@rkoster rkoster merged commit 202444b into main Nov 16, 2023
3 checks passed
@rkoster rkoster deleted the stemcell-by-name-#186393341 branch November 16, 2023 15:48
jpalermo pushed a commit that referenced this pull request Jan 3, 2024
Follow up to: #2475

The previous PR didn't handle diffs correctly so it showed that runtime configs
were getting added/removed even though they weren't.

This commit moves the OS population up into the manifest parsing so it can apply
to both the deployment manifest and the diff manifest.

This caused the DeploymentPlan Stemcell to start failing because it had a validation
that both Name and OS shouldn't be specified. We moved that validation up to the
ManifestValidator which seems like a more appropriate place for it anyway.

We modified the manifest parsing to prefer Name over OS when resolving the stemcell version
aliases. This is more consistent with how the DeploymentPlan Stemcell resolves Name and OS.
It shouldn't be a behavioral change though since you can't specify both Name and OS.

Signed-off-by: Joseph Palermo <joseph.palermo@broadcom.com>
jpalermo pushed a commit that referenced this pull request Jan 3, 2024
Follow up to: #2475

The previous PR didn't handle diffs correctly so it showed that runtime configs
were getting added/removed even though they weren't.

This commit moves the OS population up into the manifest parsing so it can apply
to both the deployment manifest and the diff manifest.

This caused the DeploymentPlan Stemcell to start failing because it had a validation
that both Name and OS shouldn't be specified. We moved that validation up to the
ManifestValidator which seems like a more appropriate place for it anyway.

We modified the manifest parsing to prefer Name over OS when resolving the stemcell version
aliases. This is more consistent with how the DeploymentPlan Stemcell resolves Name and OS.
It shouldn't be a behavioral change though since you can't specify both Name and OS.

Signed-off-by: Joseph Palermo <joseph.palermo@broadcom.com>
jpalermo pushed a commit that referenced this pull request Jan 8, 2024
Follow up to: #2475

The previous PR didn't handle diffs correctly so it showed that runtime configs
were getting added/removed even though they weren't.

This commit moves the OS population up into the manifest parsing so it can apply
to both the deployment manifest and the diff manifest.

This caused the DeploymentPlan Stemcell to start failing because it had a validation
that both Name and OS shouldn't be specified. We moved that validation up to the
ManifestValidator which seems like a more appropriate place for it anyway.

We modified the manifest parsing to prefer Name over OS when resolving the stemcell version
aliases. This is more consistent with how the DeploymentPlan Stemcell resolves Name and OS.
It shouldn't be a behavioral change though since you can't specify both Name and OS.

Signed-off-by: Joseph Palermo <joseph.palermo@broadcom.com>
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.

4 participants