Skip to content

Promote cflinuxfs5 stack#1354

Open
Milena-Encheva wants to merge 1 commit into
developfrom
promote-cflinuxfs5-stack
Open

Promote cflinuxfs5 stack#1354
Milena-Encheva wants to merge 1 commit into
developfrom
promote-cflinuxfs5-stack

Conversation

@Milena-Encheva

Copy link
Copy Markdown
Contributor

Please take a moment to review the questions before submitting the PR

🚫 We only accept PRs to develop branch. If this is an exception, please specify why 🚫

Target branch: develop ✅

WHAT is this change about?

Promotes the experimental/add-cflinuxfs5.yml ops file following the Inline Option of the ops-file-promotion-workflow.

The cflinuxfs5 stack (Ubuntu 24.04) and all associated buildpacks are now included directly in cf-deployment.yml as an additional stack. cflinuxfs4 remains the default stack for backwards compatibility.

Specifically:

cf-deployment.yml: Adds cflinuxfs5 release, stack definition, all buildpacks (staticfile, java, ruby, dotnet-core, nodejs, go, python, php, nginx, r, binary), cflinuxfs5-rootfs-setup job on diego-cell, and cflinuxfs5 preloaded rootfs. All CC components (cloud_controller_ng, cloud_controller_worker, cloud_controller_clock, cc_deployment_updater) have their droplet_destinations and lifecycle_bundles updated to include cflinuxfs5.

add-cflinuxfs5.yml: Replaced content with a deprecation notice. The file is kept per the ops-file promotion workflow.
README.md: Marks add-cflinuxfs5.yml as deprecated and updates the note for set-cflinuxfs5-default-stack.yml to reflect it no longer requires add-cflinuxfs5.yml.

cf-deployment.yml: Removes the dedicated experimental-cats-cflinuxfs5 CI job (previously using a separate cflinuxfs5 config file) and removes add-cflinuxfs5.yml from the hermione deploy ops list.

What customer problem is being addressed? Use customer persona to define the problem e.g. Alana is unable to...

Alana (CF operator) wants to offer her app developers a choice of both Ubuntu 22.04 (cflinuxfs4) and Ubuntu 24.04 (cflinuxfs5) stacks out of the box, without needing to apply any additional ops files. With this change, cflinuxfs5 is available as a stack upon a fresh cf-deployment deploy, and app developers can push apps targeting cflinuxfs5 while the platform default remains cflinuxfs4 for backward compatibility.

Please provide any contextual information.

  • CATs validation for cflinuxfs5 has been successfully completed on the hermione environment.
  • Pre-conditions met: all buildpacks (including java and binary) support cflinuxfs5.
  • All buildpacks are supported on cflinuxfs5.
  • The dedicated experimental-cats-cflinuxfs5 CI job is removed as cflinuxfs5 CATs coverage is folded into the main experimental-cats job. The relint-envs stacks configuration in the CATs integration configs should be set to ["cflinuxfs5"] for all pipelines except the Jammy backwards-compatibility pipeline (snape).
  • Ops-file promotion workflow followed: ops-file-promotion-workflow.md

Has a cf-deployment including this change passed cf-acceptance-tests?

  • YES
  • NO

Does this PR introduce a breaking change? Please take a moment to read through the examples before answering the question.

  • YES - please choose the category from below. Feel free to provide additional details.
  • NO

The default stack remains cflinuxfs4. cflinuxfs5 is added as an additional stack. Operators who were using add-cflinuxfs5.yml will see it is now a no-op (deprecated) and should remove it from their deploy pipelines. This is a non-breaking extension of the manifest — no existing configuration is removed or renamed.

Note: The deprecated add-cflinuxfs5.yml now contains only a deprecation comment (per ops-file promotion workflow — the file is intentionally kept until the next major release).

Types of breaking changes:

  1. causes app or operator downtime
  2. increases VM footprint of cf-deployment - e.g. new jobs, new add ons, increases # of instances etc.
  3. modifies, deletes or moves the name of a job or instance group in the main manifest
  4. modifies the name or deletes a property of a job or instance group in the main manifest
  5. changes the name of credentials in the main manifest
  6. requires out-of-band manual intervention on the part of the operator
  7. modifies the ops-file path, changes the type, changes the values or removes ops-files from the following folders
    • ./operations/ or ./operations/experimental
    • ./addons
    • ./backup-and-restore/

If you're promoting an experimental Ops-file (or removing one), Please follow the Ops-file workflows.

Ops files changes in the following folders are considered as NON BREAKING CHANGES
./community, ./example-vars-files, ./test

How should this change be described in cf-deployment release notes?

Cflinuxfs5 stack can now be used out of the box without applying any extra ops files. The cflinuxfs4 stack remains the default. Operators using add-cflinuxfs5.yml can safely remove it from their deploy pipelines.

Does this PR introduce a new BOSH release into the base cf-deployment.yml manifest or any ops-files?

  • YES - — adds cflinuxfs5 release (cloudfoundry/cflinuxfs5-release v0.31.0-beta) to cf-deployment.yml
  • NO

Does this PR make a change to an experimental or GA'd feature/component?

  • experimental feature/component - → promoted to default (inlined)
  • GA'd feature/component

Please provide Acceptance Criteria for this change?

No failing job in cf-deplpyment pipelines related to cflinuxfs5

What is the level of urgency for publishing this change?

  • Urgent - unblocks current or future work
  • Slightly Less than Urgent

Tag your pair, your PM, and/or team!

@jochenehret @iaftab-alam @oliver-heinrich

@jochenehret jochenehret left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Test needs update, rest looks good!

| [`rootless-containers.yml`](rootless-containers.yml) | Enable rootless garden-runc containers. | Requires garden-runc 1.9.5 or later and grootfs 0.27.0 or later. This ops file **cannot** be deployed in conjunction with `enable-oci-phase-1.yml`. | **NO** |
| [`set-cflinuxfs4-default-stack.yml`](set-cflinuxfs4-default-stack.yml) | Set the default stack to [cflinuxfs4](https://github.com/cloudfoundry/cflinuxfs4). | ***Deprecated as we integrate cflinuxfs4 directly into cf-deployment.yml*** Requires `./add-cflinuxfs4.yml`. | **NO** |
| [`set-cflinuxfs5-default-stack.yml`](set-cflinuxfs5-default-stack.yml) | Set the default stack to [cflinuxfs5](https://github.com/cloudfoundry/cflinuxfs5). | Requires `./add-cflinuxfs5.yml`. | **NO** |
| [`set-cflinuxfs5-default-stack.yml`](set-cflinuxfs5-default-stack.yml) | Set the default stack to [cflinuxfs5](https://github.com/cloudfoundry/cflinuxfs5). | cflinuxfs5 is now included in cf-deployment.yml. This ops file no longer requires `./add-cflinuxfs5.yml`. | **NO** |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please update this test:

set-cflinuxfs5-default-stack.yml:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants