- Nested pod templates and inheritance issues JENKINS-49700
See the full list of issues at JIRA
No longer tracked in this file. See GitHub releases instead.
- Add http connections count #528
- Hide deprecated credential type #529 JENKINS-49717
- Allow option
showRawYaml
in Jenkinsfiles #519
- testing Fixed test flakes #496 JENKINS-46076
- testing Add a test for the
showRawYaml
option #525 - Simplify logic to return pod status #526
- testing Simplify testing logic by providing a generic method to load and schedule a pipeline definition #527
- Prevent save of Kubernetes agent through UI #514 JENKINS-57965
- Support "Docker Host Certificates" credentials to authenticate against Kubernetes #520
- Fixed an issue where only the last PodTemplateFilter would be applied #521
- Update parent POM to 3.44 #505
- Update plugin dependencies
- Making ContainerExecProc periodically send a newline to keep a socket alive #513JENKINS-58065
- Update kubernetes-client to 4.3.0 #454
- Do not display secrets in build logs JENKINS-57893
- Fix a thread safety issue when handling dynamic podtemplates #489
- Explicit inheritance should override implicit inheritance. Declarative k8s template do not inherit from parent pod template by default. #480 JENKINS-57548
- Fix databinding of ContainerTemplate DescribableModel.uninstantiate2 works. #486 JENKINS-57116
- Update jackson dependency to 2.9.9 to address CVE-2019-12086 #483
- Fix empty yamls introduced on upgrade to 1.15.1 #462 JENKINS-57116
- Wait for some time before closing the Kubernetes expired clients #418 JENKINS-55392
- Add
showRawYaml
option to (not) show raw yaml in console #459 JENKINS-56121
- Wait for agent to connect on provisioning to avoid multiple Pod launches #455 JENKINS-56347
- Always initialize
yamls
field #460 JENKINS-57214
- Merge pod templates definitions from yaml, fix issue with missing yaml in UI #456 JENKINS-57112
- Merge pod templates definitions from yaml #449 JENKINS-56082
- Allow Setting Default Mode In Secret Volumes #452
- Prevent a wait forever if websocket is not connected #436
- Don't set build result in Declarative agent blocks #445 JENKINS-56544
- Fix
connectTimeout
andreadTimeout
not being persisted #439 #442 JENKINS-53532
- Do not close Kubernetes client after
containerLog
step #435 JENKINS-55392 - Upgrade kubernetes-client to 4.1.3. Pass
exec
buffer size using new method #431 JENKINS-50429
- Use a bigger buffer for stdin on kubernetes exec #427 JENKINS-50429
- Improve labels and help text for cloud and pod templates cap #422
- Add a system property to override default Slave Connect Timeout in seconds #432
- Add build url as default annotation #433 JENKINS-56133
- Update kubernetes client to 4.1.2 #434 JENKINS-52593
- Use a watcher to monitor pod status while launching the agent #423
- Expire Kubernetes clients after one day and make it configurable #429 JENKINS-56140
- Allow non admin to call
getContainers
andgetPodEvents
returning an empty list #430 JENKINS-56155
- Set
nodeUsageMode
toEXCLUSIVE
as default #386 - Add
slaveConnectTimeout
andnamespace
to declarative pipeline #421 JENKINS-55960
- Require Jenkins 2.138.4 instead of 2.150.1 #413
- Combine env vars into a single set before writing once in container shell execution #393 JENKINS-50429
- Fail faster if a pod enters in error state during provisioning #414
- Allow setting namespace from Pod yaml #405 JENKINS-51610
- Add page to Kubernetes nodes to show pod events #408
- Require Jenkins 2.150.1 #411
- Do not wait for pod if it has been deleted or if it has failed #410 #412
- Don't close kubernetes client upon cache removal #407 JENKINS-55138
- Add missing field maxRequestsPerHost to copy constructor #403
- Fix maxRequestsPerHost form validation #400
- Prevent multiple instances of KubernetesClient that can cause memory leaks with multiple API http connections #397 JENKINS-54770
- Note that this will enforce the limit of connections to the Kubernetes API and you may need to increase the value of Max connections to Kubernetes API if you see errors like
JENKINS-40825
: interrupted while waiting for websocket connection
- Note that this will enforce the limit of connections to the Kubernetes API and you may need to increase the value of Max connections to Kubernetes API if you see errors like
- Populate jnlp tunnel in the jnlp endpoint to launch agent whether Jenkins is behind load balancer or not #389
- Combine parent pod template ports with children #340 JENKINS-50932
- Allow custom workspace in declarative pipeline #380 JENKINS-53817
- Upgrade kubernetes-client to 4.1.0 #391 JENKINS-52593
- Pod name is detected as
localhost
in Bluemix IKS #388 JENKINS-53297
- Allow adding jenkins job metadata to the pods using the KubernetesComputer extenion point #383
- Display Pod log for Kubernetes agents in the node view #367
- Declarative pipeline: stdin/stdout/stderr of a remote process are not redirected. Do not wrap the default
jnlp
container calls incontainer
steps #377 JENKINS-53422
- Handle null retention policy resulting from direct xml pod template injection (seen during agent termination) #381
- Fix nested Pod Templates support #382 JENKINS-50196
- Fix pod spec display in build logs #384
- Container and instance cap are not honored when requesting lots of slaves #374 JENKINS-53313
- Check for nulls in older kubernetes versions, fixes some NPEs in Kubernetes 1.5 #378 JENKINS-53370
- Add volumes from pod template to JNLP container #371 JENKINS-50879
- Chinese localization #368#370
- Upgrade Jenkins to 2.121.2 #365
- Using declarative, environment variables like COMMIT_ID, GIT_BRANCH are not populated. Use CheckoutScript to populate environment #364 JENKINS-52623
- Upgrade kubernetes-client to 4.0.0. Drops support for OpenShift <1.6 #358 JENKINS-53363
- Fix defaults for Pod Retention on Pod templates #363 JENKINS-48149
- Add optional usage restriction for a Kubernetes cloud using folder properties #282
- Add Pod Retention policies to keep pods around on failure #354 JENKINS-48149
- Global configuration
testConnection
using GET allows stealing credentials + CSRF SECURITY-1016
- Tool Location overwrites are not preserved #318 JENKINS-44285
- Add
yamlFile
option for Declarative agent to read yaml definition from a different file #355 JENKINS-52259
- Avoid streaming to 2 similar OutputStreams #356
- Combine all resources declared in requests and limits not just CPU and memory #350
- Jenkins master in windows changes the file separator of
mountPath
incorrectly #308 JENKINS-47178
- Update parent and Jenkins versions #349
- Fix mountPath error provisioning
mountPath: Required value
#346 JENKINS-50525
- Preserve unsupported directives in
PodTemplate
yaml, add explicit support for envFrom #348
- Do not emit empty strings for resource requests/limits #342
- Get the exit code the correct way. Solves problems with many pipeline steps that rely on tool outputs #300 JENKINS-50392
- Validate label and container names with regex #332 #343 JENKINS-51248
- Do not print credentials in build output or logs. Only affects certain pipeline steps like
withDockerRegistry
.sh
step is not affected SECURITY-883
- Add option to apply caps only on alive pods #252
- Add idleMinutes to pod template in declarative pipeline #336 JENKINS-51569
- Use Jackson and Apache HttpComponents Client libraries from API plugins #333 JENKINS-51582
- Merge labels from yaml #326 JENKINS-51137
- Instance cap reached with preexisting pods due to lack of labels #325 JENKINS-50268
- Transfer any master proxy related envs that the remoting jar uses to the pod templates with
addMasterProxyEnvVars
option #321
- Some fields are not inherited from parent template (InheritFrom, InstanceCap, SlaveConnectTimeout, IdleMinutes, ActiveDeadlineSeconds, ServiceAccount, CustomWorkspaceVolumeEnabled) #319
- Support multiple containers in declarative pipeline #306 JENKINS-48135
- Expose pod configuration via yaml to UI and merge tolerations when inheriting #311
- Resolve NPE merging yaml when resource requests/limits are not set #310
- Do not pass arguments to jnlp container #315 JENKINS-50913
- Merge default
jnlp
container options JENKINS-50533 #305
- Fix duplicated volume mounts JENKINS-50525 #303
- Use the correct agent namespace in logs #304
- Allow creating Pod templates from yaml. This allows setting all possible fields in Kubernetes API using yaml JENKINS-50282 #275
- Print agent specification upon node allocation #302
- Env vars using
PATH+SOMETHING
syntax clear the previous env var JENKINS-50437 #301
- Support passing
kubeconfig
file as credentials using secretFile credentials JENKINS-49817 #294 - Allow customization of NodeProvisioner.PlannedNode using extension point #298
- Fix ssh-agent execution inside container. envVars on procstarter were discarded JENKINS-42582 #291
- Allow specifying a different shell command other than
/bin/sh
#287
- Track agents being in provisioning to avoid overprovisioning JENKINS-47501 #289
- Implement extension points to contribute pod templates and filter them JENKINS-49594 #288
- Don't persist PodTemplateMap and implement onResume in PodTemplateStep. Will prevent potential leaking of dynamic pod templates definitions across restarts JENKINS-47759 #285
- Provide injection of run context (build level) environment variables for container steps in declarative pipeline usage JENKINS-49465 #285
- Fix global environment variables JENKINS-47376 #245
- Move PodTemplate -> Pod conversion to PodTemplateBuilder #276
- Split credentials classes into new plugin kubernetes-credentials #268
- Store definition of dynamic templates to a separate configuration than Kubernetes cloud JENKINS-49166 #279
- This can cause some side effects on the order the templates are picked, see
- JENKINS-49366 Nested podTemplate stopped working in 1.1.4
- JENKINS-49313 Incorrect podTemplate deployed starting in 1.1.4
- This can cause some side effects on the order the templates are picked, see
- Prevent unneeded exec operations #239
- Fix UI support of environment variables JENKINS-47112 #273
- Missing call to
slave.terminate()
#256 - Rename slave -> agent #258
- Add new line when logging the agent in Jenkins #267
- Namespace is erroneously autodetected as 'default' #261
- Do not require 2.89 for installation, revert to 2.32.1 #263
- IllegalStateException at hudson.XmlFile.replaceIfNotAtTopLevel JENKINS-45892 #257
- Fix agent reconnection after master restart JENKINS-47476 #244
- Wait 5s for complete disconnection of agents to avoid stack trace #248
- If namespace is not provided nor autoconfigured should use
default
#234 - Kubernetes plugin not using cmd proc variables, affecting
sshagent
step JENKINS-47225#236 - Escape quotes in environment variables JENKINS-46670#218
- Only allow tasks after all containers in pod are ready #230
- Add activeDeadlineSeconds to Pod template #221
- Default podTemplate slaveConnectTimeout to 100 #235
- Allow overriding HOME env var and remove duplicated env vars #224
- Rename jenkinsci/jnlp-slave -> jenkins/jnlp-slave and upgrade to 3.10-1 #231
- Do not use a tty to prevent nohup.out from being created JENKINS-46087 #212
- Pod annotations cannot contain duplicate keys when combining pod templates #220
- Kubernetes agents not getting deleted in Jenkins after pods are deleted JENKINS-35246 #217
- Remove unused JENKINS_JNLP_URL env var #219
containerLog
step to get the logs of a container running in the agent pod JENKINS-46085 #195- Autoconfigure cloud if kubernetes url is not set #208
- Change containerCap and instanceCap 0 to mean do not use JENKINS-45845 #199
- Add environment variables to container from a secret JENKINS-39867 #162
- Deprecate
containerEnvVar
forenvVar
and addedsecretEnvVar
- Enable setting slaveConnectTimeout in podTemplate defined in pipeline #213
- Read Jenkins URL from cloud configuration or
KUBERNETES_JENKINS_URL
env var #216 - Make
withEnv
work inside a container JENKINS-46278 #204 - Close resource leak, fix broken pipe error. Make number of concurrent requests to Kubernetes configurable JENKINS-40825 #182
- Delete pods in the cloud namespace when pod namespace is not defined JENKINS-45910 #192
- Use
Util.replaceMacro
instead of our custom replacement logic. Behavior change: when a var is not defined it is not replaced, ie.${key1} or ${key2} or ${key3}
->value1 or value2 or ${key3}
#198 - Allow to create non-configurable instances programmatically #191
- Do not cache kubernetes connection to reflect config changes and credential expiration JENKINS-39867 #189
- Inherit podAnnotations when inheriting pod templates #209
- Remove unneeded plugin dependencies, make pipeline-model-extensions optional #214
- Add an experimental Declarative Agent extension for Kubernetes JENKINS-41758 #127
- Implement Port mapping #165
- Support idleMinutes field in pipeline #154
- Add command liveness probe support #158
- Add toggle for node usage mode #158
- Add namespace support on PodTemplate.
- Make PodTemplate optional within pipeline JENKINS-42315
- Make Slave Jenkins connection timeout configurable #141
- Fix durable pipeline PID NumberFormatException JENKINS-42048 #157
- Don't provision nodes if there are no PodTemplates set to usage mode Normal #171
- Refactoring add/set methods in PodTemplate #173
- Delete the build pod after we have finished with the template block #172
- Default to use the kubernetes.default.svc.cluster.local endpoint
- Do not print stack trace on ConnectException
- Upgrade kubernetes client to 2.3.1 JENKINS-44189
- Step namespace should have priority over anything else #161
- Wait for pod to exist up to 60 seconds before erroring #155
- Catch IOException on ContainerExecProc#kill
- Do not print stack trace on connection exception
- Restore random naming for pipeline managed pod templates.
- Dir context is not honored by shell step JENKINS-40925 #146
- Limit pod name to 63 characters, and change the randomly generated string #143
- Fix workingDir inheritance error #136
- Use name instead of label for the nesting stack #137
- Exception in configure page when 'Kubernetes URL' isn't filled JENKINS-45282 #174
- kubectl temporary config file should work where Jenkins project contains spaces #178
- Thread/connection leak #177
- Pod Template "Annotations" Field #105
- The workspace volume is now configurable #114
- Allow the user to configure a pod template that will be used for providing the default values. #133
- Cleanup environment variable mapping, allow overriding HOME env variable #128
- When upgrading from <0.9 set the container name to jnlp. To avoid creating an extra container, the one that exists and the new jnlp auto generated #132
- Make the name field in the pod template the pod name #134
- [JENKINS-41847] NPE in addProvisionedSlave when label is null #129
- [JENKINS-41725] NPE in PodTemplateUtils.combine #130
- [JENKINS-41287] Fix error when job contains spaces #131
- Remove node if pod startup fails #122
- Avoid NPE if cloud is deleted or renamed #118
- Fixing deletion of containers in pod templates, containers property is databound #113
- Prevent NPE in PodTemplateAction #112
- [JENKINS-40457] java.lang.ArrayStoreException when a image pull secret is defined #111
- NOTE if you have defined a JNLP container in your Pod definition, you need to remove it or rename it to
jnlp
, otherwise a new container calledjnlp
will be created. Set "Arguments to pass to the command" to${computer.jnlpmac} ${computer.name}
- Fixing checkbox serialization by jelly views #110
- Do not throw exceptions in the test configuration page #107
- Upgrade to the latest kubernetes-client version. #106
- feat: make pipeline support instanceCap field #102
- Instantiating Kubernetes Client with proper config in Container Steps #104
- Fix NPE when slaves are read from disk #103
- [JENKINS-39867] Upgrade fabric8 to 1.4.26 #101
- The pod watcher now checks readiness of the right pod. #97
- Fix logic for waitUntilContainerIsReady #95
- instanceCap is not used in pipeline #92
- Allow nesting of templates for inheritance. #94
- Wait until all containers are in ready state before starting the slave #93
- Adding basic retention for idle slaves, using the idleTimeout setting properly #91
- Improve the inheritFrom functionality to better cover containers and volumes. #84
- Fix null pointer exceptions. #89
- fix PvcVolume jelly templates path #90
- Added tool installations to the pod template. #85
- fix configmap volume name #87
- set the serviceAccount when creating new pods #86
- Read and connect timeout are now correctly used to configure the client. #82
- Fix nodeSelector in podTemplate #83
- Use the client's namespace when deleting a pod (fixes a regression preventing pods to delete). #81
- Make it possible to define more than one container inside a pod.
- Add new pod template step which allows defining / overriding a pod template from a pipeline script.
- Introduce pipeline step that allows choosing one of the containers of the pod and have all 'sh' steps executed there.
- allow setting dynamic pod volumes in pipelines
- Add support for persistent volume claims
- Add support for containerEnvVar's in pipelines
- [JENKINS-37087] Handle multiple labels per pod correctly
- [JENKINS-37087] Iterate over all matching templates
- Fix slave description and labels
- [JENKINS-38829] Add help text for Kubernetes server certificate
- #59: Allow blank namespace and reuse whatever is discovered by the client.
- Ensure instanceCap defaults to unlimited
- Add Jenkins computer name to the container env vars
- Split arguments having quotes into account
- Allow the user to enable pseudo-TTY on container level.
- Use provided arguments without forcing jnlpmac and name into them. Provide placeholders for jnlpmac and name for the user to use. Fallback container uses as default arguments jnlpmac and name.
- Split volume classes into their own package (#77)
- Add ability to define list of image pull secrets for pod template
- Fix name printing
- [JENKINS-36253] Add Annotations to Pod Template
- Add support for NFS volumes (#63)
- Change health check url for one that works (Jenkins 2 enables CSRF protection and security by default)
- Issue #59 Allow autodiscovery of namespace
- Update kubernetes-client
- Add support for service account
- Set HOME and working dir for build to execute into slave agent remoteFS (#57)
- JENKINS-34840 Fix NPE when node selector is null
- Add resouce request and limit to container
- Generate Cloud Slave node base on pod template name
- check for null prior to ranging over template.getEnvVars() (#61)
- Fix StringIndexOutOfBoundsException in slave name
- Add support for secrets and empty dir volumes
- Add support for nodeSelector in pod templates
- Add support for storing OpenShift OAuth access token as credential
- Allow client certificate as kubernetes api credentials (JENKINS-30894)
- Fix ArrayIndexOutOfBoundsException building node selector map when field is empty on the configuration (JENKINS-33649)
- Add support for env variables
- Add checkbox for image pull policy
- Update fabric8 client for Kubernetes to 2.2.16
- Use a replication controller to run Jenkins master
- Generate OpenShift OAuth Bearer token on demand based on user credentials
- Add support for Container Cleanup Timeout
- Fix JENKINS-31076 — Proper message if credentials are not defined or not found
- Add support for hostPath volumes
- Avoid looooooong slave name
- Support token based authentication for CLI
- Use a Bearer token to connect to API master (typically to connect to OpenShift Origin)
- Enable a dedicated credential type when jenkins do run inside kubernetes with service account enabled, so cloud can be setup with a fixed configuration, but actual credentials get injected at runtime
- Replace obsolete Kubernetes client library with Fabric8
- Let user configure the kubernetes cluster CA root certificate for self-signed deployment (typically, Google Container Engine)
- Upgrade Docker-plugin dependency to 0.9.4 - warning: 0.10 is incompatible
- Initial implementation