Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: K8s version change transformer is not always run #1166

Closed
HarikrishnanBalagopal opened this issue Mar 25, 2024 · 0 comments · Fixed by #1165
Closed

bug: K8s version change transformer is not always run #1166

HarikrishnanBalagopal opened this issue Mar 25, 2024 · 0 comments · Fixed by #1165

Comments

@HarikrishnanBalagopal
Copy link
Contributor

HarikrishnanBalagopal commented Mar 25, 2024

Overview

The order in which the transformers are run is random. This means in some cases version conversion is not happening. This is especially a problem with --qa-skip where the default transformation option (first option) is selected for each service.

Steps To Reproduce

  1. Create a src folder with an Ingress v1beta1 yaml file.
  2. Do a move2kube transform -s src/
  3. After the transformation is finished check the logs and the myproject output folder.

Expected behavior

The K8s version change transformer should run and change the Ingress yaml from v1beta1 to v1.

$ ls myproject/source/
ingress-1-versionchanged		ingress-1-versionchanged-parameterized

Actual behavior

The K8s version change transformer only runs half the time randomly.
When it doesn't run, the output doesn't contain the version changed yamls.

$ ls myproject/source/
ingress-1-parameterized
$ cat myproject/source/ingress-1-parameterized/helm-chart/myproject/templates/ingress-0.yaml 

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
    annotations:
        kubernetes.io/ingress.class: myingressclass-0
        nginx.ingress.kubernetes.io/rewrite-target: /$1
    name: ingress-0
spec:
    rules:
        - http:
            paths:
                - backend:
                    serviceName: helloworld-svc-0
                    servicePort: 8080
                  path: /helloworld-0/(.*)

...

Additional context

2 different plan files from the same input

apiVersion: move2kube.konveyor.io/v1alpha1
kind: Plan
metadata:
  name: myproject
spec:
  sourceDir: ../inputs/versionchange/ingress-1000
  services:
    myproject:
      - transformerName: Parameterizer
        paths:
          KubernetesYamls:
            - .
          ServiceDirectories:
            - .
      - transformerName: KubernetesVersionChanger
        type: KubernetesOrgYamlsInSource
        paths:
          KubernetesYamls:
            - .
          ServiceDirectories:
            - .
  transformers:
    ArgoCD: m2kassets/built-in/transformers/kubernetes/argocd/transformer.yaml
    Buildconfig: m2kassets/built-in/transformers/kubernetes/buildconfig/transformer.yaml
    CloudFoundry: m2kassets/built-in/transformers/cloudfoundry/transformer.yaml
    ClusterSelector: m2kassets/built-in/transformers/kubernetes/clusterselector/transformer.yaml
    ComposeAnalyser: m2kassets/built-in/transformers/compose/composeanalyser/transformer.yaml
    ComposeGenerator: m2kassets/built-in/transformers/compose/composegenerator/transformer.yaml
    ContainerImagesPushScriptGenerator: m2kassets/built-in/transformers/containerimagespushscript/transformer.yaml
    DockerfileDetector: m2kassets/built-in/transformers/dockerfile/dockerfiledetector/transformer.yaml
    DockerfileImageBuildScript: m2kassets/built-in/transformers/dockerfile/dockerimagebuildscript/transformer.yaml
    DockerfileParser: m2kassets/built-in/transformers/dockerfile/dockerfileparser/transformer.yaml
    DotNetCore-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/dotnetcore/transformer.yaml
    EarAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/earanalyser/transformer.yaml
    EarRouter: m2kassets/built-in/transformers/dockerfilegenerator/java/earrouter/transformer.yaml
    Golang-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/golang/transformer.yaml
    Gradle: m2kassets/built-in/transformers/dockerfilegenerator/java/gradle/transformer.yaml
    Jar: m2kassets/built-in/transformers/dockerfilegenerator/java/jar/transformer.yaml
    Jboss: m2kassets/built-in/transformers/dockerfilegenerator/java/jboss/transformer.yaml
    Knative: m2kassets/built-in/transformers/kubernetes/knative/transformer.yaml
    Kubernetes: m2kassets/built-in/transformers/kubernetes/kubernetes/transformer.yaml
    KubernetesVersionChanger: m2kassets/built-in/transformers/kubernetes/kubernetesversionchanger/transformer.yaml
    Liberty: m2kassets/built-in/transformers/dockerfilegenerator/java/liberty/transformer.yaml
    Maven: m2kassets/built-in/transformers/dockerfilegenerator/java/maven/transformer.yaml
    Nodejs-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/nodejs/transformer.yaml
    OperatorTransformer: m2kassets/built-in/transformers/kubernetes/operator/transformer.yaml
    PHP-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/php/transformer.yaml
    Parameterizer: m2kassets/built-in/transformers/kubernetes/parameterizer/transformer.yaml
    Python-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/python/transformer.yaml
    ReadMeGenerator: m2kassets/built-in/transformers/readmegenerator/transformer.yaml
    Ruby-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/ruby/transformer.yaml
    Rust-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/rust/transformer.yaml
    Tekton: m2kassets/built-in/transformers/kubernetes/tekton/transformer.yaml
    Tomcat: m2kassets/built-in/transformers/dockerfilegenerator/java/tomcat/transformer.yaml
    WarAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/waranalyser/transformer.yaml
    WarRouter: m2kassets/built-in/transformers/dockerfilegenerator/java/warrouter/transformer.yaml
    WinWebApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winweb/transformer.yaml
    ZuulAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/zuul/transformer.yaml
  disabledTransformers:
    WinConsoleApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winconsole/transformer.yaml
    WinSLWebApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winsilverlightweb/transformer.yaml

and

apiVersion: move2kube.konveyor.io/v1alpha1
kind: Plan
metadata:
  name: myproject
spec:
  sourceDir: ../inputs/versionchange/ingress-1000
  services:
    myproject:
      - transformerName: KubernetesVersionChanger
        type: KubernetesOrgYamlsInSource
        paths:
          KubernetesYamls:
            - .
          ServiceDirectories:
            - .
      - transformerName: Parameterizer
        paths:
          KubernetesYamls:
            - .
          ServiceDirectories:
            - .
  transformers:
    ArgoCD: m2kassets/built-in/transformers/kubernetes/argocd/transformer.yaml
    Buildconfig: m2kassets/built-in/transformers/kubernetes/buildconfig/transformer.yaml
    CloudFoundry: m2kassets/built-in/transformers/cloudfoundry/transformer.yaml
    ClusterSelector: m2kassets/built-in/transformers/kubernetes/clusterselector/transformer.yaml
    ComposeAnalyser: m2kassets/built-in/transformers/compose/composeanalyser/transformer.yaml
    ComposeGenerator: m2kassets/built-in/transformers/compose/composegenerator/transformer.yaml
    ContainerImagesPushScriptGenerator: m2kassets/built-in/transformers/containerimagespushscript/transformer.yaml
    DockerfileDetector: m2kassets/built-in/transformers/dockerfile/dockerfiledetector/transformer.yaml
    DockerfileImageBuildScript: m2kassets/built-in/transformers/dockerfile/dockerimagebuildscript/transformer.yaml
    DockerfileParser: m2kassets/built-in/transformers/dockerfile/dockerfileparser/transformer.yaml
    DotNetCore-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/dotnetcore/transformer.yaml
    EarAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/earanalyser/transformer.yaml
    EarRouter: m2kassets/built-in/transformers/dockerfilegenerator/java/earrouter/transformer.yaml
    Golang-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/golang/transformer.yaml
    Gradle: m2kassets/built-in/transformers/dockerfilegenerator/java/gradle/transformer.yaml
    Jar: m2kassets/built-in/transformers/dockerfilegenerator/java/jar/transformer.yaml
    Jboss: m2kassets/built-in/transformers/dockerfilegenerator/java/jboss/transformer.yaml
    Knative: m2kassets/built-in/transformers/kubernetes/knative/transformer.yaml
    Kubernetes: m2kassets/built-in/transformers/kubernetes/kubernetes/transformer.yaml
    KubernetesVersionChanger: m2kassets/built-in/transformers/kubernetes/kubernetesversionchanger/transformer.yaml
    Liberty: m2kassets/built-in/transformers/dockerfilegenerator/java/liberty/transformer.yaml
    Maven: m2kassets/built-in/transformers/dockerfilegenerator/java/maven/transformer.yaml
    Nodejs-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/nodejs/transformer.yaml
    OperatorTransformer: m2kassets/built-in/transformers/kubernetes/operator/transformer.yaml
    PHP-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/php/transformer.yaml
    Parameterizer: m2kassets/built-in/transformers/kubernetes/parameterizer/transformer.yaml
    Python-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/python/transformer.yaml
    ReadMeGenerator: m2kassets/built-in/transformers/readmegenerator/transformer.yaml
    Ruby-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/ruby/transformer.yaml
    Rust-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/rust/transformer.yaml
    Tekton: m2kassets/built-in/transformers/kubernetes/tekton/transformer.yaml
    Tomcat: m2kassets/built-in/transformers/dockerfilegenerator/java/tomcat/transformer.yaml
    WarAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/waranalyser/transformer.yaml
    WarRouter: m2kassets/built-in/transformers/dockerfilegenerator/java/warrouter/transformer.yaml
    WinWebApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winweb/transformer.yaml
    ZuulAnalyser: m2kassets/built-in/transformers/dockerfilegenerator/java/zuul/transformer.yaml
  disabledTransformers:
    WinConsoleApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winconsole/transformer.yaml
    WinSLWebApp-Dockerfile: m2kassets/built-in/transformers/dockerfilegenerator/windows/winsilverlightweb/transformer.yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
1 participant