-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major
-
Component/s: configuration-as-code-secret-ssm-plugin
-
None
-
Environment:Jenkins 2.190.3, configuration-as-code-secret-ssm-plugin latest, Docker 18.09.2
-
1.0.1
Hello,
This ticket is to request a new release of the plugin with the current master branch's latest code.
Recently there was a pull-request merged to catch unknown exceptions from AWS SDK. This has successfully fixed a bug I have been experiencing when the AWS SDK cannot resolve credentials correctly, causing the plugin & jenkins to crash.
I built the latest plugin code, and tested the same scenario (a jcasc file with a ${foobar-secret}, and no proper AWS configuration), only changing the plugin between the old release and a new build. With the new build, Jenkins no longer crashes if the AWS SDK throws an exception about not being able to find configuration.Â
Â
With the current release I would get this error and Jenkins would stop:
Â
com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:462)
at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.bambora.jenkins.plugin.casc.secrets.ssm.AwsSsmSecretSource.getClient(AwsSsmSecretSource.java:48)
at com.bambora.jenkins.plugin.casc.secrets.ssm.AwsSsmSecretSource.reveal(AwsSsmSecretSource.java:34)
But with a build of the latest code, I get the following:
Â
2020-02-14 06:20:43.670+0000 [id=28] SEVERE c.b.j.p.c.s.s.AwsSsmSecretSource#reveal: Error building sdk: foobar-secret
com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:462)
at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.bambora.jenkins.plugin.casc.secrets.ssm.AwsSsmSecretSource.getClient(AwsSsmSecretSource.java:52)
at com.bambora.jenkins.plugin.casc.secrets.ssm.AwsSsmSecretSource.reveal(AwsSsmSecretSource.java:35)
2020-02-14 06:20:43.683+0000 [id=28] WARNING i.j.p.casc.SecretSourceResolver#handleUndefinedVariable: Configuration import: Found unresolved variable foobar-secret. Will default to empty string
It is correctly catching the exception and Jenkins does not die.
I find this fix very useful as it allows me to use Jenkins with the plugin installed and while using variables in JCasC, without needing proper AWS credentials set up.
Â