noa-ramon opened a new pull request, #1253:
URL: https://github.com/apache/flink-kubernetes-operator/pull/1253

   ## What is the purpose of the change
   
   Blue/Green child `FlinkDeployment`s were created with only the 
`blue-green-deployment-type` label; none of the parent 
`FlinkBlueGreenDeployment`'s labels reached them. With 
`kubernetes.operator.label.selector` set, the operator reconciles the parent 
(which matches the selector) and creates a child that does not match, so 
`FlinkDeploymentController` never reconciles it. The child gets no status, the 
parent waits for `abort.grace-period` and goes `FAILING`. Blue/Green cannot 
work on a selector-scoped operator without labelling the children by hand.
   
   This change makes children inherit the parent's labels, with the Blue/Green 
type marker set on top. See 
[FLINK-41403](https://issues.apache.org/jira/browse/FLINK-41403).
   
   ## Brief change log
   
     - `BlueGreenUtils`: the child's labels are built from the parent's labels 
plus `blue-green-deployment-type`.
     - `flink.apache.org/canary` is deliberately not inherited: a child 
carrying it is skipped by `FlinkDeploymentController`, which would reproduce 
the same silent hang whenever the parent itself is a canary resource.
   
   ## Verifying this change
   
   This change added tests and can be verified as follows:
   
     - 
`FlinkBlueGreenDeploymentControllerTest#verifyChildInheritsParentLabelsWithoutTheCanaryMarker`:
 a parent with `team`, `environment` and the canary label produces a child 
carrying `team`, `environment` and the `BLUE` type marker, and not the canary 
label. The test fails without the fix (the child has only the type marker).
     - All Blue/Green test suites pass (`mvn -pl flink-kubernetes-operator test 
-Dtest='*BlueGreen*'`, 131 tests).
     - Manually verified on a label-selector-scoped operator: children are 
created already matching the selector, are reconciled immediately and the 
transition completes.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changes to the `CustomResourceDescriptors`: 
no
     - Core observer or reconciler logic that is regularly executed: no 
(Blue/Green child creation only)
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
     - If yes, how is the feature documented? not applicable
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes (Claude Code)
   
   Generated-by: Claude Code (Fable 5.1)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to