quarkus: OpenShift deployment with kubernetes & container-image-docker extension does not work

Describe the bug

The combination of both extensions quarkus-kubernetes and quarkus-container-image-docker for deployment-target=openshift does not work out of the box.

The generated openshift.yml file contains some not needed resources and wrong settings for S2I build (S2I is not in place in my configuration).

To get the deployment done I have to go the OpenShift WebConsole and manually delete the wrong deployment-trigger on the DeploymentConfig and start the deployment.

The following resources are generated by the quarkus-kubernetes extension:

  1. ServiceAccount --> okay
  2. Service --> okay
  3. ImageStream as target for the S2I build --> not needed (must be removed)
  4. ImageStream for S2I builder image --> not needed (must be removed)
  5. BuildConfig for S2I build --> not needed (must be removed)
  6. DeploymentConfig --> not okay because invalid deployment-trigger from S2I ImageStream (must be removed)
...
apiVersion: "apps.openshift.io/v1"
kind: "DeploymentConfig"
...
spec:
  ...
  triggers:
  - imageChangeParams:
      automatic: true
      containerNames:
      - "quarkus-openshift-deployment"
      from:
        kind: "ImageStreamTag"
        name: "quarkus-openshift-deployment:1.0.0-SNAPSHOT"
    type: "ImageChange"
...
  1. Route --> okay

Expected behavior

The combination of the extensions quarkus-kubernetes and quarkus-container-image-docker for deployment-target=openshift should build a container-image, push it to my docker-registry and then deploy only the needed OpenShift resources with a reference to the container-image in the docker-registry.

Actual behavior

The generated openshift.yml file contains some not needed resources and wrong settings for S2I build (S2I is not in place in my configuration). This prevents the automatic deployment to OpenShift without using S2I.

To Reproduce

  1. Bootstrap a new quarkus maven project with the extensions: resteasy-jsonb, smallrye-health, container-image-docker, kubernetes
  2. Add these properties to the application.properties
quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes.deployment-target=openshift
quarkus.openshift.expose=true
quarkus.openshift.labels.app=quarkus-demo
  1. Login to your OpenShift cluster oc login https://my-openshift-cluster --token=...
  2. Login to your docker-registry docker login ...
  3. Start build with deployment mvn clean package -Dquarkus.kubernetes.deploy=true
  4. Open OpenShift WebConsole to see that deployment was not successful due to reported bug

Environment

  • Quarkus version: 1.5.1-Final
  • Build tool: Maven 3.6.3
  • OpenShift 3.11

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 16 (16 by maintainers)

Most upvoted comments

OK, sorry I missread it then 😃

@iocanel I really think the Openshift resources generation needs to be decoupled from S2I

@iocanel can you please link the PR to this issue so it will be closed once the PR is merged?