- Nested pod templates and inheritance issues JENKINS-50196 JENKINS-49700
See the full list of issues at JIRA
Preserve resources other than CPU and memory
- 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