You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With Kubernetes on GCP, adding an environment variable with a dot to the deployment cluster breaks the pipeline.
Environment variable with key foo and value bar works, while key foo.boo and value bar throws the following exception:
Exception:
javax.validation.ConstraintViolationException at io.fabric8.kubernetes.api.model.EnvVarBuilder.validate(EnvVarBuilder.java:67) at io.fabric8.kubernetes.api.model.EnvVarBuilder.build(EnvVarBuilder.java:54) at io.fabric8.kubernetes.api.model.EnvVarBuilder.build(EnvVarBuilder.java:14) at io.fabric8.kubernetes.api.builder.Builder$build$2.call(Unknown Source) at com.netflix.spinnaker.clouddriver.kubernetes.api.KubernetesApiConverter$_toContainer_closure6.doCall(KubernetesApiConverter.groovy:338) 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:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:439) at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:2348) at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:2318) at org.codehaus.groovy.runtime.dgm$63.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at com.netflix.spinnaker.clouddriver.kubernetes.api.KubernetesApiConverter.toContainer(KubernetesApiConverter.groovy:319) at com.netflix.spinnaker.clouddriver.kubernetes.api.KubernetesApiConverter$toContainer$1.call(Unknown Source) at com.netflix.spinnaker.clouddriver.kubernetes.deploy.ops.servergroup.DeployKubernetesAtomicOperation$_deployDescription_closure2.doCall(DeployKubernetesAtomicOperation.groovy:118) 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:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:439) at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:2348) at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:2318) at org.codehaus.groovy.runtime.dgm$63.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at com.netflix.spinnaker.clouddriver.kubernetes.deploy.ops.servergroup.DeployKubernetesAtomicOperation.deployDescription(DeployKubernetesAtomicOperation.groovy:117) at com.netflix.spinnaker.clouddriver.kubernetes.deploy.ops.servergroup.DeployKubernetesAtomicOperation.operate(DeployKubernetesAtomicOperation.groovy:54) at com.netflix.spinnaker.clouddriver.kubernetes.deploy.ops.servergroup.DeployKubernetesAtomicOperation.operate(DeployKubernetesAtomicOperation.groovy) at com.netflix.spinnaker.clouddriver.orchestration.AtomicOperation$operate.call(Unknown Source) at com.netflix.spinnaker.clouddriver.orchestration.DefaultOrchestrationProcessor$_process_closure1_closure2.doCall(DefaultOrchestrationProcessor.groovy:70) at com.netflix.spinnaker.clouddriver.orchestration.DefaultOrchestrationProcessor$_process_closure1_closure2.doCall(DefaultOrchestrationProcessor.groovy) at sun.reflect.GeneratedMethodAccessor2704.invoke(Unknown Source) 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:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:417) at com.netflix.spinnaker.clouddriver.metrics.TimedCallable$ClosureWrapper.call(TimedCallable.groovy:55) at com.netflix.spinnaker.clouddriver.metrics.TimedCallable.call(TimedCallable.groovy:82) at java_util_concurrent_Callable$call.call(Unknown Source) at com.netflix.spinnaker.clouddriver.orchestration.DefaultOrchestrationProcessor$_process_closure1.doCall(DefaultOrchestrationProcessor.groovy:69) at com.netflix.spinnaker.clouddriver.orchestration.DefaultOrchestrationProcessor$_process_closure1.doCall(DefaultOrchestrationProcessor.groovy) at sun.reflect.GeneratedMethodAccessor2702.invoke(Unknown Source) 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:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:417) at com.netflix.spinnaker.clouddriver.metrics.TimedCallable$ClosureWrapper.call(TimedCallable.groovy:55) at com.netflix.spinnaker.clouddriver.metrics.TimedCallable.call(TimedCallable.groovy:82) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
The text was updated successfully, but these errors were encountered:
Kubernetes prevents you from creating env vars with a . character, so I would recommend filing this issue with them:
spec.template.spec.containers[0].env[0].name: Invalid value: "foo.boo": must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g. "my_name" or "MyName"
With Kubernetes on GCP, adding an environment variable with a dot to the deployment cluster breaks the pipeline.
Environment variable with key
foo
and valuebar
works, while keyfoo.boo
and valuebar
throws the following exception:The text was updated successfully, but these errors were encountered: