eclipse-jkube / jkube

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

TriggersAnnotationIT is failing on windows #3477

Open rohanKanojia opened 3 weeks ago

rohanKanojia commented 3 weeks ago

Component

None

Task description

Description

Related to #3406

⚠️ A windows machine is required to reproduce and fix problems in this issue

TriggersAnnotationIT is failing on windows:

Error:    TriggersAnnotationIT.ocResourceTask_whenRun_generatesOpenShiftManifestWithTriggersAnnotation:53 � IllegalArgument Values not equal for entry: 'image.openshift.io/triggers', expected '[ {
  "from" : {
    "kind" : "ImageStreamTag",
    "name" : "triggersannotation:latest"
  },
  "fieldPath" : "spec.template.spec.containers[?(@.name==\"orgeclipsejkubeintegrationtestsgradle-triggersannotation\")].image"
} ]' but was '[ {
  "from" : {
    "kind" : "ImageStreamTag",
    "name" : "triggersannotation:latest"
  },
  "fieldPath" : "spec.template.spec.containers[?(@.name==\"orgeclipsejkubeintegrationtestsgradle-triggersannotation\")].image"
} ]'

This issue looks related to one issue I had fixed https://github.com/eclipse-jkube/jkube/pull/3014

Problem seems to be here : https://github.com/eclipse-jkube/jkube/blob/78e8631c9c101e52dc94f14fb97c16383396afc5/jkube-kit/enricher/generic/src/main/java/org/eclipse/jkube/enricher/generic/TriggersAnnotationEnricher.java#L156

Jackson generates annotation with platform specific line delimiters /r/n for windows.

If we change it like this, it makes test pass:

-            return Serialization.asJson(triggerList);
+            return Serialization.asJson(triggerList).replaceAll("\r?\n", "\n");

Expected Behavior

TriggersAnnotationIT should pass on windows

Acceptance Criteria

pujakarakoti07 commented 3 weeks ago

@rohanKanojia I want to work on this issue, can you please assign this to me?

rohanKanojia commented 3 weeks ago

@pujakarakoti07 : Could you please reply to my comments on your open pull requests?