bfitzpat opened a new issue #900: Issues with pre-published Kubernetes secret 
and Camel-K integration
URL: https://github.com/apache/camel-k/issues/900
 
 
   So I have been able to publish a config-map using kubectl with `kubectl 
create configmap <config-id> --from-file=<config.file>` and then run an 
integration with `kamel run --configmap=<config-id> <myintegration.file>` and 
have that work fine. 
   
   But when I attempt the same approach with secrets, I'm hitting weird issues.
   
   First, I'm assuming the secret itself is a base64-encoded list of name/value 
pairs. 
   
   Second, I was able to create a secret config-map yaml file by hand and it 
worked just fine. 
   
   If I create the secret yaml file by hand so it looks like what you have in 
https://camel.apache.org/staging/camel-k/latest/configuration/configmap-secret.html,
 it works. Run `kubectl apply -f my-secret.yaml` and then use `kamel run 
--secret=<secret-id-from-my-secret-yaml> <myintegration.file>`. That works 
great. 
   
   Unfortunately I run into issues if I go a slightly different route...
   
   If I create my secret with `kubectl create secret generic <secret-id> 
--from-file=<base64-encoded-secret.file>`, I see the secret in my Kubernetes 
system. And then I use `kamel run --secret=<secret-id> <myintegration.file>`, 
I'm getting very weird results.
   
   Two new config maps are created -- <secret-id>-properties and 
<secret-id>-source-000 -- 
   and I'm seeing errors in the camel log:
   
   ```Exception in thread "main" org.apache.camel.RuntimeCamelException: 
java.lang.IllegalArgumentException: PropertiesComponent with name properties 
must be defined in CamelContext to support property placeholders. Property with 
key [telegram.APIKey] not found in properties from text: 
telegram:bots/{{telegram.APIKey}}?chatId={{telegram.chatID}}
        at 
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:52)
        at 
org.apache.camel.model.RouteDefinitionHelper.initRouteInput(RouteDefinitionHelper.java:445)
        at 
org.apache.camel.model.RouteDefinitionHelper.prepareRouteImp(RouteDefinitionHelper.java:361)
        at 
org.apache.camel.model.RouteDefinitionHelper.prepareRoute(RouteDefinitionHelper.java:333)
        at 
org.apache.camel.model.RoutesDefinition.route(RoutesDefinition.java:193)
        at 
org.apache.camel.model.RoutesDefinition.from(RoutesDefinition.java:164)
        at org.apache.camel.builder.RouteBuilder.from(RouteBuilder.java:212)
        at 
org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)
        at 
org.apache.camel.k.loader.groovy.dsl.IntegrationConfiguration.from(IntegrationConfiguration.groovy:72)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:821)
        at 
org.apache.camel.k.loader.groovy.dsl.IntegrationConfiguration.invokeMethod(IntegrationConfiguration.groovy)
        at groovy.util.DelegatingScript.invokeMethod(DelegatingScript.java:110)
        at 
org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:70)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:168)
        at Script1.run(Script1.groovy:7)
        at 
org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)
        at 
org.apache.camel.k.loader.groovy.GroovyRoutesLoader$1$_configure_closure1.doCall(GroovyRoutesLoader.groovy:58)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
        at groovy.lang.Closure.call(Closure.java:405)
        at groovy.lang.Closure.call(Closure.java:421)
        at 
org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1608)
        at org.codehaus.groovy.runtime.dgm$913.doMethodInvoke(Unknown Source)
        at 
org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)
        at 
org.apache.camel.k.loader.groovy.GroovyRoutesLoader$1.configure(GroovyRoutesLoader.groovy:52)
        at 
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:442)
        at 
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:409)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:390)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.lambda$addRoutes$0(AbstractCamelContext.java:1077)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2404)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1077)
        at 
org.apache.camel.main.MainSupport.postProcessCamelContext(MainSupport.java:779)
        at 
org.apache.camel.main.MainSupport.initCamelContext(MainSupport.java:646)
        at org.apache.camel.main.Main.doInit(Main.java:108)
        at 
org.apache.camel.support.service.ServiceSupport.init(ServiceSupport.java:61)
        at 
org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:88)
        at org.apache.camel.main.MainSupport.run(MainSupport.java:196)
        at 
org.apache.camel.k.main.ApplicationRuntime.run(ApplicationRuntime.java:70)
        at org.apache.camel.k.main.Application.main(Application.java:44)
   Caused by: java.lang.IllegalArgumentException: PropertiesComponent with name 
properties must be defined in CamelContext to support property placeholders. 
Property with key [telegram.APIKey] not found in properties from text: 
telegram:bots/{{telegram.APIKey}}?chatId={{telegram.chatID}}
        at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:247)
        at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:144)
        at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:103)
        at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:87)
        at 
org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:57)
        at 
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:219)
        at 
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:171)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.resolvePropertyPlaceholders(AbstractCamelContext.java:1682)
        at 
org.apache.camel.model.ProcessorDefinitionHelper.resolvePropertyPlaceholders(ProcessorDefinitionHelper.java:734)
        at 
org.apache.camel.model.RouteDefinitionHelper.initRouteInput(RouteDefinitionHelper.java:443)
        ... 53 more```
   
   Is there a structure to the secret file that I feed to `kubectl create 
secret generic` that I need to follow? 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to