eclipse-jkube / jkube

Build and Deploy java applications on Kubernetes
https://www.eclipse.dev/jkube/
Eclipse Public License 2.0
775 stars 522 forks source link

Enforce ordering/priority in AbstractHealthCheckEnricher implementations #1890

Open rohanKanojia opened 2 years ago

rohanKanojia commented 2 years ago

Component

JKube Kit

Task description

Description

Related to https://github.com/eclipse/jkube/pull/1709 #443

At the moment we have these enrichers that implement AbstractHealthCheckEnricher and are responsible for adding readiness/liveness probes to Kubernetes/OpenShift YAML manifests.

They are executed in sequential order as specified in profile, enricher which is applicable first modifying Kubernetes manifests: https://github.com/eclipse/jkube/blob/9490349b58b730c9be6fea7c4701f1608ccccdc7/kubernetes-maven-plugin/plugin/src/main/resources/META-INF/jkube/profiles-default.yml#L53-L62

This seems to work okay since all enrichers were only applicable to specific frameworks for which they were implemented. However, since #1709 We've implemented an AbstractMicroprofileHealthCheckEnricher which shares common logic for frameworks like SmallRye, Quarkus, OpenLiberty.

Expected Behavior

We should enforce some kind of priority / ordering between these health checks or maybe just MicroProfile-related enricher implementations. This should be discussed first.

Mohd-Farhan commented 2 years ago

May i try this?

rohanKanojia commented 2 years ago

@Mohd-Farhan : Sorry but I created this issue as a reminder to refactor in future. We still need to discuss on how to solve this. I'd advise you to leave this and pick some other good first issue.

Mohd-Farhan commented 2 years ago

Ok

manusa commented 2 years ago

Enrichers that might share applicability to different frameworks/libraries should account for each other regardless of configuration or profiles. We should tackle this just like we do for WebApp and WildFly.