Notable changes to this project will be documented in this file. The format is based on Keep a Changelog. Kubeclient release versioning follows SemVer.
- Really made
Kubeclient::Config.new(data, nil)
prevent external file lookups. README documented this since 3.1.1 (#334) but alas that was a lie — absolute paths always worked.
- Support custom resources with lowercase
kind
(#361). create_security_context_constraint
now works (#366).get_security_context_constraints.kind
,get_endpoints.kind
are now plural as in kubernetes (#366).
- Add support for retrieving large lists of objects in chunks (#356).
- Bumped officially supported kubernetes versions to >= 1.3.
- Specifically
proxy_url
no longer works for <= 1.2 (#323).
proxy_url
now works for kubernetes 1.10 and later (#323).
- Switched
http
gem dependency from 2.y to 3.y (#321).
- Fixed
Kubeclient::Config.read
regression, no longer crashes on YAML timestamps (#338).
In this version Kubeclient::Config.read
raises Psych::DisallowedClass on legal yaml configs containing a timestamp, for example gcp access-token expiry (#337).
-
Changed
Kubeclient::Config.read
to useYAML.safe_load
(#334).Previously, could deserialize arbitrary ruby classes. The risk depends on ruby classes available in the application; sometimes a class may have side effects - up to arbitrary code execution - when instantiated and/or built up with
x[key] = value
during YAML parsing.Despite this fix, using config from untrusted sources is not recommended.
- Fixed watch
.finish
sometimes causedHTTP::ConnectionError
exception from the reading loop (#315).
get_pod_log
now hastimestamps
,since_time
(#319) andtail_lines
(#326) params.Kubeclient::Config::Context#namespace
now set, if present in kubeconfig file (#308).- Improved README directions for authenticating within a kubernetes cluster (#316).
Kubeclient::GoogleApplicationDefaultCredentials
helper for Google application default credentials (#213). Needsgoogleauth
gem.- New
as: :parsed
andas: :parsed_symbolized
formats (#306). - Allow setting default
as:
format for the whole client (#299, #305). - Relaxed
recursive-open-struct
dependency to allow 1.1+ as well (#313).
- Dropped entity classes (
Kubeclient::Pod
etc.), onlyKubeclient::Resource
exists now (#292, #288). - Ruby 2.0, 2.1 no longer supported (#253, #291).
- Added missing singular
get_security_context_constraint
, fixedget_security_context_constraints
to mean plural (#261). - Fixed
@http_proxy_uri
undefined warning (#261). - Documentation fixes & improvements (#225, #229, #243, #296).
delete_options:
parameter todelete_*
methods, useful for cascade delete (#267).as: :raw
option for watch (#285).- Now raises
Kubeclient::HttpError
. RescuingKubeException
still works but is deprecated. (#195, #288)- 404 error raise
Kubeclient::ResourceNotFoundError
, a subclass ofHttpError
(#233).
- 404 error raise
- Include request info in exception message (#221).
- Ruby 2.4 and 2.5 are now supported & tested (#247, #295).
Kubeclient::Config#context(nonexistent_context_name)
raisesKeyError
instead ofRuntimeError
.update_*
,delete_*
,patch_*
now all returnRecursiveOpenStruct
consistently (#290).- Many dependencies bumped (#204, #231, #253, #269).
- Watch results are now
RecursiveOpenStruct
inside arrays too (#279). - Fixed watch
.finish
sometimes causedErrno::EBADF
exception from the reading loop (#280). - Easing dependency version (#287, #301)
No changes since 2.5.0, fixed packaging mistake.
as: raw
option forget_*
methods returning a string (#262 via #271).