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"
...
7) 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
quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes.deployment-target=openshift
quarkus.openshift.expose=true
quarkus.openshift.labels.app=quarkus-demo
oc login https://my-openshift-cluster --token=...docker login ...mvn clean package -Dquarkus.kubernetes.deploy=trueEnvironment
Yeah... The openshift extension is only really meant to be used with S2I, it's not ideal.
I would suggest for the time being to use the vanilla kubernetes extension and apply quarkus.kubernetes.deployment-target=openshift.
cc @iocanel
@geoand I do not use the openshift extension. I know this is for S2I only. I already use the vanilla kubernetes extension. And this issue is all about the kubernetes extension with target=openshift.
OK, sorry I missread it then :)
@iocanel I really think the Openshift resources generation needs to be decoupled from S2I
@iocanel this is it pending a dekorate release IIRC, right?
@iocanel @geoand Let me know when the new dekorate release is in place inside quarkus master branch. Then i will give it a test to my openshift environment.
@haraldatbmw yeah, there is a new dekorate release in master, so if could give it a try, we would be grateful.
@geoand Just tried with the current master branch without success. The generated openshift.yml still contains the whole S2I stuff.
Thanks @haraldatbmw
@iocanel can you shine some light on what the status of this is?
We have a PR pending. Once the tests pass, we will merge.
@iocanel can you please link the PR to this issue so it will be closed once the PR is merged?
@haraldatbmw mind giving this another go?
Thanks
@geoand Now it looks better. Deployment to Openshift works. But two additional findings.
mvn clean package -Dquarkus.kubernetes.deploy=true then the deployment-counter in openshift increments by two)@geoand Now it looks better. Deployment to Openshift works. But two additional findings.
Thanks for checking!
- Massiv log-output from the kubernetes extension
That has since been fixed
- I think the generated trigger inside the deployment-config causes double deployment (If i call
mvn clean package -Dquarkus.kubernetes.deploy=truethen the deployment-counter in openshift increments by two)
@iocanel ^
@geoand Should I open a new issue for the double-deployment thing?
Yes please
Just created https://github.com/quarkusio/quarkus/issues/10875
Most helpful comment
OK, sorry I missread it then :)
@iocanel I really think the Openshift resources generation needs to be decoupled from S2I