Failed to run Apache CamelK IntegrationKit due to validation error 'type in spec.tasks.image.volumes.secret is required' on GKE

8/13/2020

I followed the instruction to install Camel K on GKE given here and here.
After that, I tried to run basic integration hello.groovy, but faced the problem outlined at github-issue. I was able to get past the problem by setting flag --build-publish-strategy=Kaniko.

However, the IntegrationKit is still stuck in the Build Submitted phase and the cause this time is

validation failure list:
type in spec.tasks.image.volumes.secret is required

Kubernetes versions on GKE

{
"clientVersion": {
"major": "1",
"minor": "18",
"gitVersion": "v1.18.6",
"gitCommit": "dff82dc0de47299ab66c83c626e08b245ab19037",
"gitTreeState": "clean",
"buildDate": "2020-07-15T16:58:53Z",
"goVersion": "go1.13.9",
"compiler": "gc",
"platform": "linux/amd64"
},
**"serverVersion": {
"major": "1",
"minor": "15+",**
"gitVersion": "v1.15.12-gke.2",
"gitCommit": "fb7add51f767aae42655d39972210dc1c5dbd4b3",
"gitTreeState": "clean",
"buildDate": "2020-06-01T22:20:10Z",
"goVersion": "go1.12.17b4",
"compiler": "gc",
"platform": "linux/amd64"
}
}

The same integration works on Minikube.

Kubernetes versions on Minikube

{
"clientVersion": {
"major": "1",
"minor": "18",
"gitVersion": "v1.18.6",
"gitCommit": "dff82dc0de47299ab66c83c626e08b245ab19037",
"gitTreeState": "clean",
"buildDate": "2020-07-15T16:58:53Z",
"goVersion": "go1.13.9",
"compiler": "gc",
"platform": "linux/amd64"
},
**"serverVersion": {
"major": "1",
"minor": "18",**
"gitVersion": "v1.18.3",
"gitCommit": "2e7996e3e2712684bc73f0dec0200d64eec7fe40",
"gitTreeState": "clean",
"buildDate": "2020-05-20T12:43:34Z",
"goVersion": "go1.13.9",
"compiler": "gc",
"platform": "linux/amd64"
}
}

Relevant events in the output of k describe integrationkits.camel.apache.org kit-bsqdepf9gf15pade1u5g is,

>     Warning  IntegrationKitError  20s (x6 over 100s)  camel-k-integration-kit-controller  (combined from similar events):
> Cannot reconcile Integration Kit kit-bsqdepf9gf15pade1u5g: cannot
> create build: Build.camel.apache.org "kit-bsqdepf9gf15pade1u5g" is
> invalid: []: Invalid value: map[string]interface
> {}{"apiVersion":"camel.apache.org/v1", "kind":"Build",
> "metadata":map[string]interface
> {}{"creationTimestamp":"2020-08-13T06:03:42Z", "generation":1,
> "labels":map[string]interface
> {}{"camel.apache.org/created.by.kind":"Integration",
> "camel.apache.org/created.by.name":"hello",
> "camel.apache.org/created.by.version":"9182"},
> "name":"kit-bsqdepf9gf15pade1u5g", "namespace":"default",
> "ownerReferences":[]interface {}{map[string]interface
> {}{"apiVersion":"camel.apache.org/v1", "blockOwnerDeletion":true,
> "controller":true, "kind":"IntegrationKit",
> "name":"kit-bsqdepf9gf15pade1u5g",
> "uid":"fbd0f7af-8a09-407d-af72-0d4775f1e847"}},
> "uid":"f9422c89-2020-4799-ad96-3c248ded857f"},
> "spec":map[string]interface {}{"tasks":[]interface
> {}{map[string]interface {}{"builder":map[string]interface
> {}{"baseImage":"adoptopenjdk/openjdk11:slim",
> "buildDir":"/builder/kit-bsqdepf9gf15pade1u5g",
> "dependencies":[]interface {}{"camel:log", "camel:timer",
> "mvn:org.apache.camel.k/camel-k-loader-groovy",
> "mvn:org.apache.camel.k/camel-k-runtime-main"},
> "maven":map[string]interface {}{"localRepository":"/tmp/artifacts/m2",
> "settings":map[string]interface
> {}{"configMapKeyRef":map[string]interface {}{"key":"settings.xml",
> "name":"camel-k-maven-settings"}}, "timeout":"3m45s"},
> "meta":map[string]interface
> {}{"creationTimestamp":"2020-08-13T06:02:13Z", "generation":1,
> "labels":map[string]interface
> {}{"camel.apache.org/created.by.kind":"Integration",
> "camel.apache.org/created.by.name":"hello",
> "camel.apache.org/created.by.version":"9182",
> "camel.apache.org/kit.type":"platform",
> "camel.apache.org/runtime.provider":"main",
> "camel.apache.org/runtime.version":"1.4.1"},
> "name":"kit-bsqdepf9gf15pade1u5g", "namespace":"default",
> "resourceVersion":"9186",
> "selfLink":"/apis/camel.apache.org/v1/namespaces/default/integrationkits/kit-bsqdepf9gf15pade1u5g",
> "uid":"fbd0f7af-8a09-407d-af72-0d4775f1e847"}, "name":"builder",
> "runtime":map[string]interface
> {}{"applicationClass":"org.apache.camel.k.main.Application",
> "capabilities":map[string]interface
> {}{"circuit-breaker":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-microprofile-fault-tolerance",
> "groupId":"org.apache.camel"}}}, "cron":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-cron",
> "groupId":"org.apache.camel.k"}}}, "health":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-health",
> "groupId":"org.apache.camel.k"}}},
> "platform-http":map[string]interface {}{"dependencies":[]interface
> {}{map[string]interface {}{"artifactId":"camel-k-runtime-http",
> "groupId":"org.apache.camel.k"}}}, "rest":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-rest", "groupId":"org.apache.camel"},
> map[string]interface {}{"artifactId":"camel-k-runtime-http",
> "groupId":"org.apache.camel.k"}}}, "tracing":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-tracing",
> "groupId":"org.apache.camel.k"}}}}, "dependencies":[]interface
> {}{map[string]interface {}{"artifactId":"camel-k-runtime-main",
> "groupId":"org.apache.camel.k"}}, "metadata":map[string]interface
> {}{"camel-quarkus.version":"1.0.0-CR3", "camel.version":"3.4.0",
> "quarkus.version":"1.6.0.Final"}, "provider":"main",
> "version":"1.4.1"}, "steps":[]interface
> {}{"github.com/apache/camel-k/pkg/builder/CleanBuildDir",
> "github.com/apache/camel-k/pkg/builder/GenerateProjectSettings",
> "github.com/apache/camel-k/pkg/builder/InjectDependencies",
> "github.com/apache/camel-k/pkg/builder/SanitizeDependencies",
> "github.com/apache/camel-k/pkg/builder/IncrementalImageContext",
> "github.com/apache/camel-k/pkg/builder/runtime/LoadCamelCatalog",
> "github.com/apache/camel-k/pkg/builder/runtime/GenerateProject",
> "github.com/apache/camel-k/pkg/builder/runtime/ComputeDependencies"},
> "timeout":"5m0s", "volumeMounts":[]interface {}{map[string]interface
> {}{"mountPath":"/builder", "name":"camel-k-builder"}},
> "volumes":[]interface {}{map[string]interface
> {}{"emptyDir":map[string]interface {}{}, "name":"camel-k-builder"}}}},
> map[string]interface {}{"image":map[string]interface
> {}{"args":[]interface {}{"--dockerfile=Dockerfile",
> "--context=/builder/kit-bsqdepf9gf15pade1u5g/context",
> "--destination=gcr.io/camk-exploration/camel-k-kit-bsqdepf9gf15pade1u5g:9186",
> "--cache=false", "--cache-dir=/kaniko/cache"},
> "builtImage":"gcr.io/camk-exploration/camel-k-kit-bsqdepf9gf15pade1u5g:9186",
> "env":[]interface {}{map[string]interface
> {}{"name":"GOOGLE_APPLICATION_CREDENTIALS",
> "value":"/secret/kaniko-secret.json"}},
> "image":"gcr.io/kaniko-project/executor:v0.17.1", "name":"kaniko",
> "volumeMounts":[]interface {}{map[string]interface
> {}{"mountPath":"/secret", "name":"registry-secret"},
> map[string]interface {}{"mountPath":"/builder",
> "name":"camel-k-builder"}}, "volumes":[]interface
> {}{map[string]interface {}{"name":"registry-secret",
> "secret":map[string]interface {}{"items":[]interface
> {}{map[string]interface {}{"key":"kaniko-secret.json",
> "path":"kaniko-secret.json"}}, "secretName":"kaniko-secret"}}}}}}}}:
> validation failure list:
>     type in spec.tasks.image.volumes.secret is required
>       Warning  IntegrationKitError  20s (x6 over 100s)  camel-k-integration-kit-controller  (combined from similar events):
> Cannot reconcile Integration Kit kit-bsqdepf9gf15pade1u5g: cannot
> create build: Build.camel.apache.org "kit-bsqdepf9gf15pade1u5g" is
> invalid: []: Invalid value: map[string]interface
> {}{"apiVersion":"camel.apache.org/v1", "kind":"Build",
> "metadata":map[string]interface
> {}{"creationTimestamp":"2020-08-13T06:03:42Z", "generation":1,
> "labels":map[string]interface
> {}{"camel.apache.org/created.by.kind":"Integration",
> "camel.apache.org/created.by.name":"hello",
> "camel.apache.org/created.by.version":"9182"},
> "name":"kit-bsqdepf9gf15pade1u5g", "namespace":"default",
> "ownerReferences":[]interface {}{map[string]interface
> {}{"apiVersion":"camel.apache.org/v1", "blockOwnerDeletion":true,
> "controller":true, "kind":"IntegrationKit",
> "name":"kit-bsqdepf9gf15pade1u5g",
> "uid":"fbd0f7af-8a09-407d-af72-0d4775f1e847"}},
> "uid":"f9422c89-2020-4799-ad96-3c248ded857f"},
> "spec":map[string]interface {}{"tasks":[]interface
> {}{map[string]interface {}{"builder":map[string]interface
> {}{"baseImage":"adoptopenjdk/openjdk11:slim",
> "buildDir":"/builder/kit-bsqdepf9gf15pade1u5g",
> "dependencies":[]interface {}{"camel:log", "camel:timer",
> "mvn:org.apache.camel.k/camel-k-loader-groovy",
> "mvn:org.apache.camel.k/camel-k-runtime-main"},
> "maven":map[string]interface {}{"localRepository":"/tmp/artifacts/m2",
> "settings":map[string]interface
> {}{"configMapKeyRef":map[string]interface {}{"key":"settings.xml",
> "name":"camel-k-maven-settings"}}, "timeout":"3m45s"},
> "meta":map[string]interface
> {}{"creationTimestamp":"2020-08-13T06:02:13Z", "generation":1,
> "labels":map[string]interface
> {}{"camel.apache.org/created.by.kind":"Integration",
> "camel.apache.org/created.by.name":"hello",
> "camel.apache.org/created.by.version":"9182",
> "camel.apache.org/kit.type":"platform",
> "camel.apache.org/runtime.provider":"main",
> "camel.apache.org/runtime.version":"1.4.1"},
> "name":"kit-bsqdepf9gf15pade1u5g", "namespace":"default",
> "resourceVersion":"9186",
> "selfLink":"/apis/camel.apache.org/v1/namespaces/default/integrationkits/kit-bsqdepf9gf15pade1u5g",
> "uid":"fbd0f7af-8a09-407d-af72-0d4775f1e847"}, "name":"builder",
> "runtime":map[string]interface
> {}{"applicationClass":"org.apache.camel.k.main.Application",
> "capabilities":map[string]interface
> {}{"circuit-breaker":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-microprofile-fault-tolerance",
> "groupId":"org.apache.camel"}}}, "cron":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-cron",
> "groupId":"org.apache.camel.k"}}}, "health":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-health",
> "groupId":"org.apache.camel.k"}}},
> "platform-http":map[string]interface {}{"dependencies":[]interface
> {}{map[string]interface {}{"artifactId":"camel-k-runtime-http",
> "groupId":"org.apache.camel.k"}}}, "rest":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-rest", "groupId":"org.apache.camel"},
> map[string]interface {}{"artifactId":"camel-k-runtime-http",
> "groupId":"org.apache.camel.k"}}}, "tracing":map[string]interface
> {}{"dependencies":[]interface {}{map[string]interface
> {}{"artifactId":"camel-k-runtime-tracing",
> "groupId":"org.apache.camel.k"}}}}, "dependencies":[]interface
> {}{map[string]interface {}{"artifactId":"camel-k-runtime-main",
> "groupId":"org.apache.camel.k"}}, "metadata":map[string]interface
> {}{"camel-quarkus.version":"1.0.0-CR3", "camel.version":"3.4.0",
> "quarkus.version":"1.6.0.Final"}, "provider":"main",
> "version":"1.4.1"}, "steps":[]interface
> {}{"github.com/apache/camel-k/pkg/builder/CleanBuildDir",
> "github.com/apache/camel-k/pkg/builder/GenerateProjectSettings",
> "github.com/apache/camel-k/pkg/builder/InjectDependencies",
> "github.com/apache/camel-k/pkg/builder/SanitizeDependencies",
> "github.com/apache/camel-k/pkg/builder/IncrementalImageContext",
> "github.com/apache/camel-k/pkg/builder/runtime/LoadCamelCatalog",
> "github.com/apache/camel-k/pkg/builder/runtime/GenerateProject",
> "github.com/apache/camel-k/pkg/builder/runtime/ComputeDependencies"},
> "timeout":"5m0s", "volumeMounts":[]interface {}{map[string]interface
> {}{"mountPath":"/builder", "name":"camel-k-builder"}},
> "volumes":[]interface {}{map[string]interface
> {}{"emptyDir":map[string]interface {}{}, "name":"camel-k-builder"}}}},
> map[string]interface {}{"image":map[string]interface
> {}{"args":[]interface {}{"--dockerfile=Dockerfile",
> "--context=/builder/kit-bsqdepf9gf15pade1u5g/context",
> "--destination=gcr.io/camk-exploration/camel-k-kit-bsqdepf9gf15pade1u5g:9186",
> "--cache=false", "--cache-dir=/kaniko/cache"},
> "builtImage":"gcr.io/camk-exploration/camel-k-kit-bsqdepf9gf15pade1u5g:9186",
> "env":[]interface {}{map[string]interface
> {}{"name":"GOOGLE_APPLICATION_CREDENTIALS",
> "value":"/secret/kaniko-secret.json"}},
> "image":"gcr.io/kaniko-project/executor:v0.17.1", "name":"kaniko",
> "volumeMounts":[]interface {}{map[string]interface
> {}{"mountPath":"/secret", "name":"registry-secret"},
> map[string]interface {}{"mountPath":"/builder",
> "name":"camel-k-builder"}}, "volumes":[]interface
> {}{map[string]interface {}{"name":"registry-secret",
> "secret":map[string]interface {}{"items":[]interface
> {}{map[string]interface {}{"key":"kaniko-secret.json",
> "path":"kaniko-secret.json"}}, "secretName":"kaniko-secret"}}}}}}}}:
> **validation failure list:
>     type in spec.tasks.image.volumes.secret is required**

Any help in fixing this problem will be highly appreciated.

Thanks Anand

-- Anand
apache-camel
kubernetes

0 Answers