-
Improvement
-
Resolution: Fixed
-
Major
-
-
1.17.0
Various examples in documentation and tests either set a hard-coded label for the podTemplate step, which is a race condition waiting to happen, or use ugly Groovy scripting with UUID.randomUUID(). These would better be simplified to use the standard Jenkins environment variable BUILD_TAG, which is unique per build and is also meaningful to humans trying to debug label assignments and node provisioning:
podTemplate(label: BUILD_TAG, containers: [containerTemplate(name: 'ubuntu', image: 'ubuntu', command: 'sleep', args: 'infinity')]) { node (BUILD_TAG) { container('ubuntu') { sh 'whoami' } } }
For Declarative, there is no good reason to force the user to define the label at all (see Declarative tests using label: '...'); KubernetesDeclarativeAgent.label could simply be defaulted to something such as BUILD_TAG.
- relates to
-
JENKINS-57704 Run JNLP container as side car to default build container
-
- Open
-
-
JENKINS-51248 Check for Invalid Names/Labels During Template Creation
-
- Resolved
-
- links to
BUILD_TAG will not work, however, in cases where the job name is not a label K8s label. Thus this defaulting needs to use something like this, or perhaps simpler since the name could be any random string (it already gets uniquified) so long as it bears some resemblance to the job name.