Skip to content

Conversation

@chrischdi
Copy link
Contributor

@chrischdi chrischdi commented Oct 16, 2025

This hopefully is the last PR to support bumping to v1beta2

Part of OCPCLOUD-3104 and required to merge:

Summary by CodeRabbit

  • Bug Fixes
    • Broadened API-version checks to accept v1beta2 for cluster and machine resource ownership/validation, improving interoperability.
    • Ignored conversion-related metadata during comparisons to avoid false configuration drift.
    • Added an additional cluster condition for control-plane initialization to improve status reporting.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Oct 16, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 16, 2025

@chrischdi: This pull request references OCPCLOUD-3104 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set.

In response to this:

This hopefully is the last PR to support bumping to v1beta2

Part of OCPCLOUD-3104 and required to merge:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 16, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 16, 2025

Walkthrough

Adds acceptance of cluster.x-k8s.io v1beta2 API versions in ownerReference checks and metadata diffing, and records a v1beta2 control-plane-initialized condition when the existing ControlPlaneInitializedCondition is marked true.

Changes

Cohort / File(s) Summary
Cluster controller v1beta2 condition
pkg/controllers/corecluster/corecluster_controller.go
Import conditions/v1beta2 and set ClusterControlPlaneInitializedV1Beta2Condition (Status=True, with reason) immediately after marking ControlPlaneInitializedCondition true; applies an additional patch via client.MergeFrom to persist the new condition.
MachineSet sync controller v1beta2 support
pkg/controllers/machinesetsync/machineset_sync_controller.go
Added runtime/schema import and relaxed ownerReference APIVersion checks to accept either the current Cluster API group version or the v1beta2 variant.
Machine sync controller v1beta2 support
pkg/controllers/machinesync/machine_sync_controller.go
Added runtime/schema import and broadened APIVersion checks in ownerReference conversion helpers to accept the standard GroupVersion or the v1beta2 variant across MachineSet and Cluster ownership branches.
Metadata diffing: ignore conversion-data label
pkg/util/sync.go
ObjectMetaEqual now removes the cluster.x-k8s.io/conversion-data label from copies of both objects' label maps before comparing labels; differences (if any) are reported under .labels.

Sequence Diagram(s)

sequenceDiagram
    participant Controller as CoreClusterController
    participant Cluster as Cluster resource
    participant KubeAPI as API server

    Controller->>Cluster: detect ControlPlaneInitializedCondition == True
    Note right of Controller: New step added
    Controller->>Controller: MarkTrue(clusterv1.ControlPlaneInitializedCondition)
    Controller->>Controller: Set conditionsv1beta2.ClusterControlPlaneInitializedV1Beta2Condition (Status=True, Reason)
    Controller->>KubeAPI: Patch Cluster (client.MergeFrom) to persist v1beta2 condition
    KubeAPI-->>Controller: Patch result
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped along the version lane, so spry,
I set a v1beta2 flag with a wink of my eye,
I brushed conversion-data from labels so neat,
And nodded to owner refs now more fleet,
A small rabbit tweak — the cluster sighs, "Oh my!" 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "OCPCLOUD-3104: sync: allow Cluster API v1beta2 version for ownerrefs and set Cluster v1beta2 ControlPlaneInitialized" directly and accurately captures the two primary objectives of the changeset. The title's first part aligns with changes across multiple files (machineset_sync_controller.go, machine_sync_controller.go) that broaden owner reference validation to accept v1beta2 versions, and the second part aligns with the corecluster_controller.go changes that set a new V1Beta2 ControlPlaneInitialized condition. The supporting change in sync.go (ignoring conversion-data labels) appears to be a necessary enabler for the main functionality rather than a separate concern. The title is specific, clear, and concise without unnecessary noise, making it easy for teammates to understand the primary change from scanning the history.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


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 and usage tips.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 16, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#248

@chrischdi
Copy link
Contributor Author

/test lint
/test build
/test unit

@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#248

To test if it was a flake

@chrischdi chrischdi changed the title OCPCLOUD-3104: sync: allow Cluster API v1beta2 version for ownerrefs OCPCLOUD-3104: sync: allow Cluster API v1beta2 version for ownerrefs and set Cluster v1beta2 ControlPlaneInitialized Oct 16, 2025
@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#248

@chrischdi
Copy link
Contributor Author

/test lint
/test unit

@chrischdi
Copy link
Contributor Author

/test help

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 16, 2025

@chrischdi: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

/test build
/test e2e-aws-capi-techpreview
/test e2e-aws-ovn
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-techpreview
/test e2e-aws-ovn-techpreview-upgrade
/test e2e-azure-capi-techpreview
/test e2e-azure-ovn-techpreview-upgrade
/test e2e-gcp-capi-techpreview
/test e2e-gcp-ovn-techpreview
/test e2e-openstack-capi-techpreview
/test e2e-openstack-ovn-techpreview
/test e2e-vsphere-capi-techpreview
/test images
/test lint
/test okd-scos-images
/test unit
/test vendor
/test verify-deps

The following commands are available to trigger optional jobs:

/test e2e-azure-ovn-techpreview
/test e2e-metal3-capi-techpreview
/test okd-scos-e2e-aws-ovn
/test regression-clusterinfra-aws-ipi-techpreview-capi

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-cluster-capi-operator-main-build
pull-ci-openshift-cluster-capi-operator-main-images
pull-ci-openshift-cluster-capi-operator-main-lint
pull-ci-openshift-cluster-capi-operator-main-okd-scos-e2e-aws-ovn
pull-ci-openshift-cluster-capi-operator-main-okd-scos-images
pull-ci-openshift-cluster-capi-operator-main-unit
pull-ci-openshift-cluster-capi-operator-main-vendor
pull-ci-openshift-cluster-capi-operator-main-verify-deps

In response to this:

/test help

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@chrischdi chrischdi force-pushed the pr-capi-rebase-fix-groupversion-ownerref branch from b46fab0 to 2c0018a Compare October 17, 2025 09:52
@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#248

@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#243

@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#243

1 similar comment
@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#243

@chrischdi chrischdi force-pushed the pr-capi-rebase-fix-groupversion-ownerref branch from 16eaf56 to 5424f4d Compare October 22, 2025 13:42
@chrischdi chrischdi marked this pull request as ready for review October 24, 2025 06:29
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 24, 2025
@chrischdi
Copy link
Contributor Author

/testwith openshift/cluster-capi-operator/main/e2e-aws-capi-techpreview openshift/cluster-api#243

@openshift-ci openshift-ci bot requested review from damdo and mdbooth October 24, 2025 06:30
@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 24, 2025

@chrischdi: This pull request references OCPCLOUD-3104 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set.

In response to this:

This hopefully is the last PR to support bumping to v1beta2

Part of OCPCLOUD-3104 and required to merge:

Summary by CodeRabbit

  • Bug Fixes
  • Enhanced API version compatibility by extending support for v1beta2 versions across cluster and machine resource validation
  • Improved metadata comparison to exclude conversion-related annotations, preventing spurious configuration changes
  • Added enhanced condition tracking for cluster initialization status

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 140a1fa and 5424f4d.

📒 Files selected for processing (3)
  • pkg/controllers/corecluster/corecluster_controller.go (2 hunks)
  • pkg/controllers/machinesetsync/machineset_sync_controller.go (3 hunks)
  • pkg/controllers/machinesync/machine_sync_controller.go (4 hunks)
🔇 Additional comments (8)
pkg/controllers/machinesetsync/machineset_sync_controller.go (2)

40-40: LGTM - Import required for v1beta2 support.

The runtime/schema import is necessary to construct the v1beta2 GroupVersion for owner reference validation at line 644.


644-644: LGTM - Correctly extends validation for v1beta2.

The owner reference validation now accepts both v1beta1 and v1beta2 API versions, enabling interoperability during the API version transition.

pkg/controllers/corecluster/corecluster_controller.go (2)

33-33: LGTM - Import required for v1beta2 condition support.

The conditionsv1beta2 import is necessary to set the v1beta2 ControlPlaneInitialized condition alongside the v1beta1 condition.


203-207: LGTM - Correctly adds v1beta2 condition support.

The implementation properly sets the v1beta2 ControlPlaneInitialized condition alongside the v1beta1 condition, enabling dual-version support during the API transition.

pkg/controllers/machinesync/machine_sync_controller.go (4)

44-44: LGTM - Import required for v1beta2 support.

The runtime/schema import is necessary to construct the v1beta2 GroupVersion for owner reference validation at lines 889 and 920.


889-889: LGTM - Correctly extends validation for v1beta2 MachineSet owners.

The owner reference validation now accepts both v1beta1 and v1beta2 API versions for MachineSet owners, consistent with the changes in machineset_sync_controller.go.


920-920: LGTM - Correctly extends validation for v1beta2 Cluster owners.

The owner reference validation now accepts both v1beta1 and v1beta2 API versions for Cluster owners, maintaining consistency with the MachineSet validation at line 889.


1241-1247: LGTM - Correctly sanitizes metadata before comparison.

The implementation properly creates sanitized copies of both machines by stripping the conversion-data annotation before comparing metadata, preventing false positives during diff detection.

Comment on lines 1402 to 1410

if diffObjectMeta := util.ObjectMetaEqual(capiMachineSet1.ObjectMeta, capiMachineSet2.ObjectMeta); len(diffObjectMeta) > 0 {
diffCAPIMachineSet1 := capiMachineSet1.DeepCopy()
delete(diffCAPIMachineSet1.Annotations, "cluster.x-k8s.io/conversion-data")

diffCAPIMachineSet2 := capiMachineSet1.DeepCopy()
delete(diffCAPIMachineSet2.Annotations, "cluster.x-k8s.io/conversion-data")

if diffObjectMeta := util.ObjectMetaEqual(diffCAPIMachineSet1.ObjectMeta, diffCAPIMachineSet2.ObjectMeta); len(diffObjectMeta) > 0 {
diff[".metadata"] = diffObjectMeta
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix copy-paste error in metadata diff computation.

Line 1406 copies capiMachineSet1 instead of capiMachineSet2, causing both sanitized copies to be identical. This breaks the metadata diff detection and prevents the controller from identifying differences between the two MachineSets.

Apply this diff to fix the bug:

 diffCAPIMachineSet1 := capiMachineSet1.DeepCopy()
 delete(diffCAPIMachineSet1.Annotations, "cluster.x-k8s.io/conversion-data")

-diffCAPIMachineSet2 := capiMachineSet1.DeepCopy()
+diffCAPIMachineSet2 := capiMachineSet2.DeepCopy()
 delete(diffCAPIMachineSet2.Annotations, "cluster.x-k8s.io/conversion-data")

 if diffObjectMeta := util.ObjectMetaEqual(diffCAPIMachineSet1.ObjectMeta, diffCAPIMachineSet2.ObjectMeta); len(diffObjectMeta) > 0 {
🤖 Prompt for AI Agents
In pkg/controllers/machinesetsync/machineset_sync_controller.go around lines
1402 to 1410, there is a copy-paste error: the second sanitized copy uses
capiMachineSet1.DeepCopy() instead of capiMachineSet2.DeepCopy(), making both
sanitized objects identical and hiding metadata differences; fix it by changing
the second DeepCopy call to capiMachineSet2.DeepCopy() and keep the subsequent
deletion of the "cluster.x-k8s.io/conversion-data" annotation so each sanitized
copy reflects its respective MachineSet before calling util.ObjectMetaEqual.

Copy link
Member

@damdo damdo left a comment

Choose a reason for hiding this comment

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

Thanks, looks reasonable, only a nit

/approve

Comment on lines 1403 to 1407
diffCAPIMachineSet1 := capiMachineSet1.DeepCopy()
delete(diffCAPIMachineSet1.Annotations, "cluster.x-k8s.io/conversion-data")

diffCAPIMachineSet2 := capiMachineSet1.DeepCopy()
delete(diffCAPIMachineSet2.Annotations, "cluster.x-k8s.io/conversion-data")
Copy link
Member

Choose a reason for hiding this comment

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

I'd move these into

// ObjectMetaEqual compares variables a and b,
// and returns a list of differences, or nil if there are none,
// for the fields we care about when synchronising MAPI and CAPI Machines.

we explicitly say there that's only including the fields/structs we care about for the MAPI-CAPI conversion.

Also independently on whether we add them there or not I'd add a comment on why we are dropping these annotations :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My thought was: the util func is also used for non-capi objects. But thinking again about it: totally fine to add this directly to the util 👍

Updated and also added a description inside ObjectMetaEqual.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 24, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: damdo

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 24, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 24, 2025

@chrischdi: This pull request references OCPCLOUD-3104 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set.

In response to this:

This hopefully is the last PR to support bumping to v1beta2

Part of OCPCLOUD-3104 and required to merge:

Summary by CodeRabbit

  • Bug Fixes
  • Broadened API-version checks to accept v1beta2 for cluster and machine resource ownership/validation, improving interoperability.
  • Ignored conversion-related metadata during comparisons to avoid false configuration drift.
  • Added an additional cluster condition for control-plane initialization to improve status reporting.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/controllers/machinesync/machine_sync_controller.go (1)

775-775: Update line 775 to accept both v1beta1 and v1beta2 APIVersions for consistency.

The shouldMirrorCAPIMachineToMAPIMachine function at line 775 only validates against clusterv1.GroupVersion.String() (v1beta1), but the convertCAPIMachineOwnerReferencesToMAPI function at lines 889 and 920 explicitly validates against both v1beta1 and v1beta2.

This inconsistency means CAPI Machines with v1beta2 owner references pointing to MachineSets will be skipped and not mirrored to MAPI, even though the conversion logic explicitly supports v1beta2. Line 775 should be updated to match the validation at lines 889 and 920.

🧹 Nitpick comments (1)
pkg/controllers/machinesync/machine_sync_controller.go (1)

889-889: Consider extracting the v1beta2 GroupVersion string to reduce duplication.

The inline construction of the v1beta2 GroupVersion string is duplicated on lines 889 and 920. Extracting this to a package-level constant or variable would improve maintainability.

For example, at the package level:

var (
	capiV1Beta2GroupVersion = schema.GroupVersion{Group: clusterv1.GroupVersion.Group, Version: "v1beta2"}.String()
)

Then use it in both locations:

-		if capiOwnerReference.APIVersion != clusterv1.GroupVersion.String() && capiOwnerReference.APIVersion != (schema.GroupVersion{Group: clusterv1.GroupVersion.Group, Version: "v1beta2"}).String() {
+		if capiOwnerReference.APIVersion != clusterv1.GroupVersion.String() && capiOwnerReference.APIVersion != capiV1Beta2GroupVersion {
-		if capiOwnerReference.APIVersion != clusterv1.GroupVersion.String() && capiOwnerReference.APIVersion != (schema.GroupVersion{Group: clusterv1.GroupVersion.Group, Version: "v1beta2"}).String() {
+		if capiOwnerReference.APIVersion != clusterv1.GroupVersion.String() && capiOwnerReference.APIVersion != capiV1Beta2GroupVersion {

Also applies to: 920-920

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 5424f4d and 2dd7036.

📒 Files selected for processing (3)
  • pkg/controllers/machinesetsync/machineset_sync_controller.go (2 hunks)
  • pkg/controllers/machinesync/machine_sync_controller.go (3 hunks)
  • pkg/util/sync.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/controllers/machinesetsync/machineset_sync_controller.go
🔇 Additional comments (1)
pkg/controllers/machinesync/machine_sync_controller.go (1)

44-44: LGTM!

The import is necessary for constructing v1beta2 GroupVersion strings in owner reference validation.

Comment on lines +62 to +68
// Ignore conversion-data because this data is managed by Cluster API for down conversion.
aLabels := a.DeepCopy().GetLabels()
delete(aLabels, "cluster.x-k8s.io/conversion-data")

bLabels := b.DeepCopy().GetLabels()
delete(bLabels, "cluster.x-k8s.io/conversion-data")

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix compilation error: GetLabels() method does not exist on *metav1.ObjectMeta.

The metav1.ObjectMeta type does not have a GetLabels() method. Labels should be accessed via the .Labels field directly.

Apply this diff to fix the compilation error:

-	// Ignore conversion-data because this data is managed by Cluster API for down conversion.
-	aLabels := a.DeepCopy().GetLabels()
-	delete(aLabels, "cluster.x-k8s.io/conversion-data")
-
-	bLabels := b.DeepCopy().GetLabels()
-	delete(bLabels, "cluster.x-k8s.io/conversion-data")
-
-	if diffLabels := deep.Equal(aLabels, bLabels); len(diffLabels) > 0 {
+	// Ignore conversion-data because this data is managed by Cluster API for down conversion.
+	aCopy := a.DeepCopy()
+	if aCopy.Labels != nil {
+		delete(aCopy.Labels, "cluster.x-k8s.io/conversion-data")
+	}
+
+	bCopy := b.DeepCopy()
+	if bCopy.Labels != nil {
+		delete(bCopy.Labels, "cluster.x-k8s.io/conversion-data")
+	}
+
+	if diffLabels := deep.Equal(aCopy.Labels, bCopy.Labels); len(diffLabels) > 0 {
 		objectMetaDiff[".labels"] = diffLabels
 	}

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In pkg/util/sync.go around lines 62 to 68, the code calls GetLabels() on
a.DeepCopy() and b.DeepCopy(), but metav1.ObjectMeta has no GetLabels() method;
replace those calls with direct access to the Labels field on the copied
ObjectMeta (e.g., copy := a.DeepCopy(); aLabels := copy.Labels) and then delete
the "cluster.x-k8s.io/conversion-data" key from the resulting map; ensure you
handle the case where Labels may be nil (initialize map before deleting if
necessary).

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 24, 2025

@chrischdi: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/okd-scos-e2e-aws-ovn 2dd7036 link false /test okd-scos-e2e-aws-ovn

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants