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

The flyway extension generates Kubernetes resources as if quarkus.flyway.enabled was a runtime property #37040

Closed
PierreBtz opened this issue Nov 13, 2023 · 8 comments · Fixed by #44468
Labels
Milestone

Comments

@PierreBtz
Copy link

Describe the bug

I noticed that when generating Kubernetes resource with the flyway extension in the classpath, an initialization task is created (as expected), but then the main container containing the application defines the QUARKUS_FLYWAY_ENABLED as false, which cannot have any effect since the quarkus.flyway.enabled is now a build time property.

Expected behavior

Either the variable is removed if it's useless anymore, or the logic is changed.

Actual behavior

With the variable set, at startup, Quarkus will warn that a change on a build property has no effect at runtime.
I cannot say if it breaks a previous workflow since I detected this while playing around with the extension, I suspect it's not breaking anything but it's not optimal since migration logic will try to run in any application container.

How to Reproduce?

To reproduce:

    spec:
      containers:
        - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: QUARKUS_FLYWAY_ENABLED
              value: "false"

Output of uname -a or ver

Darwin ** 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct 9 21:27:24 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6000 arm64

Output of java -version

openjdk version "17.0.4" 2022-07-19 OpenJDK Runtime Environment Temurin-17.0.4+8 (build 17.0.4+8) OpenJDK 64-Bit Server VM Temurin-17.0.4+8 (build 17.0.4+8, mixed mode)

Quarkus version or git rev

3.5.1

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)

Additional information

Note that the same is true for the init task (which sets the variable to true):

- env:
    - name: QUARKUS_INIT_AND_EXIT
      value: "true"
    - name: QUARKUS_FLYWAY_ENABLED
      value: "true"
@PierreBtz PierreBtz added the kind/bug Something isn't working label Nov 13, 2023
Copy link

quarkus-bot bot commented Nov 13, 2023

/cc @cristhiank (flyway), @gastaldi (flyway), @geoand (flyway,kubernetes), @gsmet (flyway), @iocanel (kubernetes)

@PierreBtz
Copy link
Author

Hey folks, gentle ping. Let me know if you need more details.

@phillipvanheerden
Copy link

phillipvanheerden commented Dec 20, 2023

I was wondering why my <project>-flyway-init container wasn't doing anything.

After reading this issue, I ended up setting quarkus.flyway.migrate-at-start=true in application.properties and changing the environment variable in the generated manifests from QUARKUS_FLYWAY_ENABLED to QUARKUS_FLYWAY_ACTIVE and that did the trick.

So looks like we might need to make a small fix to the quarkus-flyway extension (or quarkus-kubernetes, had a quick look and I'm not too sure which is responsible for the manifests) if I'm understanding the situation correctly?

edit: found it

.withAppEnvVars(Map.of("QUARKUS_FLYWAY_ENABLED", "false"))

@anchialas
Copy link

As a workaround, set this in your application.properties:

 quarkus.flyway.migrate-at-start=${QUARKUS_FLYWAY_ENABLED:true}

@jbgomond
Copy link

Hi, this is still a thing. Should it be QUARKUS_FLYWAY_ACTIVE now ?

@geoand geoand added the triage/needs-feedback We are waiting for feedback. label Jul 15, 2024
@geoand
Copy link
Contributor

geoand commented Sep 13, 2024

Is this still an issue with the latest version of Quarkus?

@PierreBtz
Copy link
Author

PierreBtz commented Sep 13, 2024

I just reproduced the issue using my initial reproduction steps.

Updated informations:

Output of uname -a or ver

Darwin ****** 23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:14:30 PDT 2024; root:xnu-10063.141.2~1/RELEASE_ARM64_T6000 arm64

Output of java -version

openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode)

Quarkus version or git rev

3.14.3

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)

@geoand
Copy link
Contributor

geoand commented Sep 13, 2024

Thanks a lot for the info!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
6 participants