[X ] Jenkins version 2.187
[X] Plugin version -configuration-as-code:1.24 && configuration-as-code-support:1.18
[X] OS - Alpine (Docker Official Image)
When using Azure Credentials with CASC references to Azure Credentials ( plugin azure-credentials:1.6.1 ) get caught by a different package
Example for CASC confs
- azure:
clientId: "${azure_clientId}"
clientSecret: "${azure_clientSecret}"
description: "Azure Credentials"
id: "X"
scope: GLOBAL
subscriptionId: "${azure_subscriptionId}"
azureEnvironmentName: "Azure"
This results in:
jenkins_1 | io.jenkins.plugins.casc.ConfiguratorException: Invalid configuration elements for type class com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials : azureEnvironmentName,clientId,clientSecret,subscriptionId,tenant.
jenkins_1 | Available attributes : blobEndpointURL, description, id, scope, storageAccountName, storageKey
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.handleUnknown(BaseConfigurator.java:378)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:367)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:277)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.configure(DataBoundConfigurator.java:83)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$doConfigure$16668e2$1(HeteroDescribableConfigurator.java:278)
jenkins_1 | at io.vavr.CheckedFunction0.lambda$unchecked$52349c75$1(CheckedFunction0.java:201)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.doConfigure(HeteroDescribableConfigurator.java:278)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$null$2(HeteroDescribableConfigurator.java:86)
jenkins_1 | at io.vavr.control.Option.map(Option.java:373)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$configure$3(HeteroDescribableConfigurator.java:86)
jenkins_1 | at io.vavr.Tuple2.apply(Tuple2.java:239)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.configure(HeteroDescribableConfigurator.java:83)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.configure(HeteroDescribableConfigurator.java:55)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.tryConstructor(DataBoundConfigurator.java:153)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.instance(DataBoundConfigurator.java:77)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:268)
jenkins_1 | at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.check(DataBoundConfigurator.java:101)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:345)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:288)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:353)
jenkins_1 | at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:288)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$checkWith$6(ConfigurationAsCode.java:684)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:646)
jenkins_1 | Caused: io.jenkins.plugins.casc.ConfiguratorException: credentials: error configuring 'credentials' with class com.cloudbees.plugins.credentials.casc.CredentialsRootConfigurator configurator
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:652)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:684)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:668)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:567)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:280)
jenkins_1 | at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:272)
jenkins_1 | Caused: java.lang.reflect.InvocationTargetException
jenkins_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jenkins_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jenkins_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jenkins_1 | at java.lang.reflect.Method.invoke(Method.java:498)
jenkins_1 | at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
jenkins_1 | Caused: java.lang.Error
jenkins_1 | at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:110)
jenkins_1 | at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
jenkins_1 | at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
jenkins_1 | at jenkins.model.Jenkins$5.runTask(Jenkins.java:1118)
jenkins_1 | at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
jenkins_1 | at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
jenkins_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
jenkins_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
jenkins_1 | at java.lang.Thread.run(Thread.java:748)
The same is valid if we set Azure Storage Credentials
- azureStorageAccount:
blobEndpointURL: "https://blob.core.windows.net/"
id: "X-Storage"
scope: GLOBAL
storageAccountName: "${azure_storageAccountName}"
storageKey: "${azure_storageKey}"
- azure:
clientId: "${azure_clientId}"
clientSecret: "${azure_clientSecret}"
description: "Azure Credentials"
id: "X"
scope: GLOBAL
subscriptionId: "${azure_subscriptionId}"
azureEnvironmentName: "Azure"
The values for azureStorageAccount have been exported from CASC to check if setting it would not trigger this bug.
The above results in triggering twice the Same StackTrace as set above.
Notice the package used:
com.microsoftopentechnologies.windowsazurestorage.helper.AzureCredentials
It should in fact call the one below:
com.microsoft.azure.util.AzureCredentials
This should be directed at the @jenkinsci/azure-devops-team 馃槄 They are the once who created the conflicting names.
I hacked around it in a PR to this plugin and set a symbol:
https://github.com/jenkinsci/windows-azure-storage-plugin/blob/dev/src/main/java/com/microsoftopentechnologies/windowsazurestorage/helper/AzureCredentials.java
but yeah it's bad class design which is causing this problem, not related to JCASC, should create an issue on jira.
@gavinfish FYI
@Ilhicas please feel free to open a ticket on Jira and I will follow up, thanks.
@Ilhicas please feel free to open a ticket on Jira and I will follow up, thanks.
@gavinfish
Ok, sure, will do.
https://github.com/jenkinsci/configuration-as-code-plugin/issues/964 is somewhat related
@gavinfish I've created issue with the same description as here. If you require any further info on how to reproduce, I'll be happy to provide https://issues.jenkins-ci.org/browse/JENKINS-58710
I'm not entirely sure if your user on JIRA is the one I've assigned in the issue though
@oleg-nenashev yes the @ symbol isn't resolved, as I've used 1.1.0 for storage, that has the @ symbol @timja added, but without luck.
Most helpful comment
I hacked around it in a PR to this plugin and set a symbol:
https://github.com/jenkinsci/windows-azure-storage-plugin/blob/dev/src/main/java/com/microsoftopentechnologies/windowsazurestorage/helper/AzureCredentials.java
but yeah it's bad class design which is causing this problem, not related to JCASC, should create an issue on jira.
@gavinfish FYI