Skip to content

Latest commit

 

History

History
606 lines (476 loc) · 38.5 KB

CHANGELOG.md

File metadata and controls

606 lines (476 loc) · 38.5 KB

CHANGELOG

Known issues

See the full list of issues at JIRA

1.16.5 and newer

No longer tracked in this file. See GitHub releases instead.

1.16.4

  • Add http connections count #528
  • Hide deprecated credential type #529 JENKINS-49717
  • Allow option showRawYaml in Jenkinsfiles #519

1.16.3

  • 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

1.16.2

  • Fixed an issue where only the last PodTemplateFilter would be applied #521

1.16.1

  • Update parent POM to 3.44 #505
  • Update plugin dependencies
    • structs 1.19 #494
    • variant 1.2 #464
    • cloudbees-folder 6.8 #471
    • credentials 2.2.0 / ssh-credentials 1.17 #499
  • Making ContainerExecProc periodically send a newline to keep a socket alive #513JENKINS-58065

1.16.0

  • Update kubernetes-client to 4.3.0 #454
  • Do not display secrets in build logs JENKINS-57893

1.15.7

  • 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

1.15.6

  • Fix databinding of ContainerTemplate DescribableModel.uninstantiate2 works. #486 JENKINS-57116
  • Update jackson dependency to 2.9.9 to address CVE-2019-12086 #483

1.15.5

1.15.4

1.15.3

1.15.2

  • Merge pod templates definitions from yaml, fix issue with missing yaml in UI #456 JENKINS-57112

1.15.1

1.15.0

  • 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

1.14.9

1.14.8

1.14.7

  • Use a bigger buffer for stdin on kubernetes exec #427 JENKINS-50429
  • Improve labels and help text for cloud and pod templates cap #422

1.14.6

  • 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

1.14.5

  • Expire Kubernetes clients after one day and make it configurable #429 JENKINS-56140
  • Allow non admin to call getContainers and getPodEvents returning an empty list #430 JENKINS-56155

1.14.4

  • Set nodeUsageMode to EXCLUSIVE as default #386
  • Add slaveConnectTimeout and namespace to declarative pipeline #421 JENKINS-55960

1.14.3

  • Use label as pod name when not set #375
  • Upgrade dependencies to latest versions #417 #307

1.14.2

  • 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

1.14.1

1.14.0

  • Add page to Kubernetes nodes to show pod events #408

1.13.9

  • Require Jenkins 2.150.1 #411
  • Do not wait for pod if it has been deleted or if it has failed #410 #412

1.13.8

1.13.7

  • Add missing field maxRequestsPerHost to copy constructor #403
  • Fix maxRequestsPerHost form validation #400

1.13.6

  • 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

1.13.5

  • 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

1.13.4

1.13.3

1.13.2

1.13.1

  • Allow adding jenkins job metadata to the pods using the KubernetesComputer extenion point #383

1.13.0

  • Display Pod log for Kubernetes agents in the node view #367

1.12.9

  • Declarative pipeline: stdin/stdout/stderr of a remote process are not redirected. Do not wrap the default jnlp container calls in container steps #377 JENKINS-53422

1.12.8

  • Handle null retention policy resulting from direct xml pod template injection (seen during agent termination) #381

1.12.7

1.12.6

  • Container and instance cap are not honored when requesting lots of slaves #374 JENKINS-53313

1.12.5

  • Check for nulls in older kubernetes versions, fixes some NPEs in Kubernetes 1.5 #378 JENKINS-53370

1.12.4

1.12.3

  • Upgrade Jenkins to 2.121.2 #365

1.12.2

  • Using declarative, environment variables like COMMIT_ID, GIT_BRANCH are not populated. Use CheckoutScript to populate environment #364 JENKINS-52623

1.12.1

1.12.0

  • Add optional usage restriction for a Kubernetes cloud using folder properties #282

1.11.0

1.10.2

  • Global configuration testConnection using GET allows stealing credentials + CSRF SECURITY-1016

1.10.1

1.10.0

  • Add yamlFile option for Declarative agent to read yaml definition from a different file #355 JENKINS-52259

1.9.3

  • Avoid streaming to 2 similar OutputStreams #356

1.9.2

  • Combine all resources declared in requests and limits not just CPU and memory #350

1.9.1

  • Jenkins master in windows changes the file separator of mountPath incorrectly #308 JENKINS-47178

1.9.0

  • Update parent and Jenkins versions #349

1.8.4

1.8.3

  • Preserve unsupported directives in PodTemplate yaml, add explicit support for envFrom #348

1.8.2

  • Do not emit empty strings for resource requests/limits #342

1.8.1

  • Get the exit code the correct way. Solves problems with many pipeline steps that rely on tool outputs #300 JENKINS-50392

1.8.0

1.7.1

  • Do not print credentials in build output or logs. Only affects certain pipeline steps like withDockerRegistry. sh step is not affected SECURITY-883

1.7.0

  • Add option to apply caps only on alive pods #252
  • Add idleMinutes to pod template in declarative pipeline #336 JENKINS-51569

1.6.4

  • Use Jackson and Apache HttpComponents Client libraries from API plugins #333 JENKINS-51582

1.6.3

1.6.2

  • Transfer any master proxy related envs that the remoting jar uses to the pod templates with addMasterProxyEnvVars option #321

1.6.1

  • Some fields are not inherited from parent template (InheritFrom, InstanceCap, SlaveConnectTimeout, IdleMinutes, ActiveDeadlineSeconds, ServiceAccount, CustomWorkspaceVolumeEnabled) #319

1.6.0

  • 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

1.5.2

1.5.1

1.5

  • 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

1.4.1

1.4

  • Support passing kubeconfig file as credentials using secretFile credentials JENKINS-49817 #294
  • Allow customization of NodeProvisioner.PlannedNode using extension point #298

1.3.3

  • Upgrade kubernetes-client to 3.1.10 #271
  • Copy jenkinsTunnel in copy constructor #295

1.3.2

  • 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

1.3.1

1.3

  • Implement extension points to contribute pod templates and filter them JENKINS-49594 #288

1.2.1

  • 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

1.2

1.1.4

  • 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
  • Prevent unneeded exec operations #239

1.1.3

  • 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

1.1.2

  • 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

1.1.1

  • 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

1.1

  • 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

1.0

  • 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 for envVar and added secretEnvVar
  • 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

0.12

  • 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

0.11

  • 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

0.10

  • 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 called jnlp 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

0.9

  • 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)

0.8

  • 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

0.7

  • 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

0.6

  • 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

0.5

  • 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

0.4.1

  • Avoid looooooong slave name
  • Support token based authentication for CLI

0.4

  • 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

0.2

  • 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

0.1

  • Initial implementation