Describe the bug
I created an application using three extensions:
When trying to deploy it on a Kubernetes cluster, it returns this error:
unable to decode "target/kubernetes/kubernetes.yml": resource.metadataOnlyObject.ObjectMeta: v1.ObjectMeta.Annotations: ReadString: expects " or n, but found 8, error found in #10 byte of ...|io/port":8080,"prome|..., bigger context ...|metheus.io/path":"/metrics","prometheus.io/port":8080,"prometheus.io/scrape":"true"},"labels":{"app.|...
unable to decode "target/kubernetes/kubernetes.yml": resource.metadataOnlyObject.ObjectMeta: v1.ObjectMeta.Annotations: ReadString: expects " or n, but found 8, error found in #10 byte of ...|io/port":8080,"prome|..., bigger context ...|metheus.io/path":"/metrics","prometheus.io/port":8080,"prometheus.io/scrape":"true"},"labels":{"app.|...
unable to decode "target/kubernetes/kubernetes.yml": resource.metadataOnlyObject.ObjectMeta: v1.ObjectMeta.Annotations: ReadString: expects " or n, but found 8, error found in #10 byte of ...|io/port":8080,"prome|..., bigger context ...|metheus.io/path":"/metrics","prometheus.io/port":8080,"prometheus.io/scrape":"true"},"labels":{"app.|...
Expected behavior
It should deploy the Kubernetes objects described in the kubernetes.yml
Actual behavior
It returns the error described above.
To Reproduce
Steps to reproduce the behavior:
1. Create the application with the extensions:
- quarkus-kubernetes
- quarkus-container-image-jib
- quarkus-smallrye-metrics
2. Package the application
mvn clean package -DskipTests -Dquarkus.container-image.push=true
3. Try to deploy it:
kubectl apply -f target/kubernetes/kubernetes.yml
Configuration
quarkus.container-image.registry=docker.io
quarkus.container-image.group=[your-repo]
quarkus.container-image.name=code-with-quarkus
quarkus.container-image.tag=1.0-SNAPSHOT
quarkus.kubernetes.service-type=load-balancer
Environment (please complete the following information):
uname -a or ver: Darwin emoraes-mac 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64java -version: OpenJDK 64-Bit Server VM GraalVM CE 20.0.0 (build 11.0.6+9-jvmci-20.0-b02, mixed mode, sharing)mvnw --version or gradlew --version): Apache Maven 3.6.3Additional context
There are two options that are working fine:
Using the json file instead of yml file:
kubectl apply -f target/kubernetes/kubernetes.json
Deploying from the packaging step directly:
mvn clean package -DskipTests -Dquarkus.kubernetes.deploy=true
/cc @geoand
/cc @jmartisk
Thanks for reporting.
cc @iocanel
Never seen something like this before and I've tried this scenario fairly recently.
A couple questions:
1) Does the generated YAML pass if entered in http://www.yamllint.com ?
2) What version of kubectl are you using?
Hi!
- Does the generated YAML pass if entered in http://www.yamllint.com ?
Yes.
- What version of kubectl are you using?
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.1", GitCommit:"7879fc12a63337efff607952a323df90cdc7a335", GitTreeState:"clean", BuildDate:"2020-04-10T21:53:51Z", GoVersion:"go1.14.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"17+", GitVersion:"v1.17.1+3f6f40d", GitCommit:"3f6f40d", GitTreeState:"clean", BuildDate:"2020-06-08T07:13:25Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}
Just to make it very clear, this only happens when manually applying the YAML files.
So doing either of
kubectl apply -f target/kubernetes/kubernetes.json
or
mvn package -DskipTests -Dquarkus.kubernetes.deploy=true
(as mentioned at https://groups.google.com/g/quarkus-dev/c/7Qrg9WpaXGo/m/zicLMVuWAQAJ) will work around the issue until we fix this properly.
Yes, @geoand. I confirm it.
To fix this, we need dekorateio/dekorate#607 to be merged, a new Dekorate release cut and have Quarkus pick up that release