- Exposed
Config::read
andConfig::read_from
- #124 - Fix typo on
Api::StatefulSet
- Fix typo on
Api::Endpoints
- Add
Api::v1CustomResourceDefinition
when on k8s >= 1.17
- initial rustls support #114 (some local kube config issues know #120)
- crate does better version checking against openapi features - #106
- initial
log_stream
support - #109
- Add support for ServiceAccount, Role, ClusterRole, RoleBinding, Endpoint - #113 + #111
- Upgrade k8s-openapi to 0.7 => breaking changes: https://github.com/Arnavion/k8s-openapi/blob/master/CHANGELOG.md#v070-2020-01-23
- Bump tokio and reqwest to 0.2 and 0.10
- Fix bug in
log
fetcher - #107 - Temporarily allow invalid certs when testing on macosx - #105
- Allow sharing Reflectors between threads - #97
- Fix Reflector pararall lock issue (
poll
no longer blocksstate
)
- Improve Reflector reset algorithm (clear history less)
- Default watch timeouts changed to 300s everywhere
- This increases efficiency of Informers and Reflectors by keeping the connection open longer.
- However, if your Reflector relies on frequent polling you can set
timeout
or hide thepoll()
in a different context so it doesn't block your main work - Internal
RwLock
changed to afutures::Mutex
for soundness / proper non-blocking - #94 - blocking
Reflector::read()
renamed toasync Reflector::state()
- Expose
metadata.creation_timestamp
and.deletion_timestamp
(behind openapi flag) - #93
- All watch calls returns a stream of
WatchEvent
- #92 Informer::poll
now returns a stream - #92
- ObjectList now implements Iterator - #91
- openapi feature no longer accidentally hardcoded to v1.15 feature - #90
- kube::Error is now a proper error enum and not a Fail impl (thiserror)
- soft-tokio dependency removed for futures-timer
- gzip re-introduced
- Fix unpinned gzip dependency breakage - #87
- api converted to use async/await with 1.39.0 (primitively)
- hyper upgraded to 0.10-alpha
- synchronous sleep replaced with tokio timer
Log
trait removed in favour of internal marker trait
- Add support for oidc providerss with
auth-provider
w/oaccess-token
- #70 - Bump most dependencies to more recent versions
- Expose custom client creation
- Added support for
v1beta1Ingress
- Expose incluster_config::load_default_ns - #74
- Add missing
uid
field onObjectMeta::ownerReferences
- Add
Reflector::get
andReflector::get_within
as cheaper getters - Add support for OpenShift kube configs with multiple CAs - via #64
- Add missing
ObjectMeta::ownerReferences
- Reduced memory consumption during compile with
[email protected]
- #62
- Fix compile issue on
1.37.0
withUtc
serialization - Fix
Void
not havingSerialize
derive
- Added support for
v1Job
resources - via #58 - Added support for
v1Namespace
,v1DaemonSet
,v1ReplicaSet
,v1PersistentVolumeClaim
,v1PersistentVolume
,v1ResourceQuota
,v1HorizontalPodAutoscaler
- via #59 - Added support for
v1beta1CronJob
,v1ReplicationController
,v1VolumeAttachment
,v1NetworkPolicy
- via #60 k8s-openapi
optional dependency bumped to0.5.0
(for kube 1.14 structs)
Reflector::read
now returns aVec<K>`` rather than a
Vec<(name, K)>`: This fixes an unsoundness bug internally - #56 via @gnieto
- Experimental oauth2 support for some providers - via #44 :
- a big cherry-pick from various prs upstream originally for GCP
- EKS works with setup in kube-rs#20 (comment)
- Added support for
Log
subresource - via #50 - Added support for
v1ConfigMap
with example - via #49 - Demoted some spammy info messages from Reflector
- Added
PatchParams
withPatchStrategy
to allow arbitrary patch types - #24 via @ragne Event
renamed tov1Event
to match non-slowflake type namesv1Service
support added- Added
v1Secret
snowflake type and asecret_reflector
example
-
Api<P, U>
is nowApi<K>
for someKubeObject
K:- Big change to allow snowflake objects (#35) - but also slightly nicer
- You want aliases
type Pod = Object<PodSpec, PodStatus>
- This gives you the required
KubeObject
trait impl for free
-
Added
Event
native type to prove snowflakes can be handled - #35 -
ApiStatus
renamed toStatus
to match kube api conventions #36 -
Rename
Metadata
toObjectMeta
#36 -
Added
ListMeta
forObjectList
andStatus
#36 -
Added
TypeMeta
object which is flattened ontoObject
, so:o.types.kind
rather thano.kind
o.types.version
rather thano.version
- Status subresource api commands added to
Api
:patch_status
get_status
replace_status
^ Seecrd_openapi
orcrd_api
examples
- Scale subresource commands added to
Api
:patch_scale
get_scale
replace_scale
^ Seecrd_openapi
example
- Typed
Api
variant calledOpenApi
introduced (see crd_openapi example) - Revert
client.request
return type change (back to response only from pre-0.7.0 #28) delete
now returns `Either<Object<P, U>, ApiStatus> - for bug#32delete_collection
now returns `Either<ObjectList<Object<P, U>>, ApiStatus> - for bug#32Informer::new
renamed toInformer::raw
Reflector::new
renamed toReflector::raw
Reflector::new
+Informer::new
added for "openapi" compile time feature (does not require specifying the generic types)
- Expose list/watch parameters #11
- Many API struct renames:
ResourceMap
->Cache
Resource
->Object
ResourceList
->ObjectList
ApiResource
->Api
ResourceType
has been removed in favour ofApi::v1Pod()
sayObject::status
now wrapped in anOption
(not present everywhere)ObjectList
exposed- Major API overhaul to support generic operations on
Object
- Api can be used to perform generic actions on resources:
create
get
delete
watch
list
patch
replace
get_scale
(when scale subresource exists)patch_scale
(ditto)replace_scale
(ditto)get_status
(when status subresource exists)patch_status
(ditto)replace_status
(ditto)
- crd_api example added to track the action api
- Bunch of generic parameter structs exposed for common operations:
ListParams
exposedDeleteParams
exposedPostParams
exposed
- Errors from
Api
exposed inkube::Error
:Error::api_error -> Option<ApiError>
exposed- Various other error types also in there (but awkward setup atm)
client.request
now returns a tuple(T, StatusCode)
(before onlyT
)
- Expose getter
Informer::version
- Exose ctor
Informer::from_version
- Expose more attributes in
Metadata
Informer::reset
convenience method addedInformer::poll
no longer returns events straight- an
Informer
now cachesWatchEvent
elements into an internal queue Informer::pop
pops a single element from its internal queueReflector::refresh
renamed toReflector::reset
(matchesInformer
)Void
type added so we can useReflector<ActualSpec, Void>
- removes need for Spec/Status structs:
ReflectorSpec
,ReflectorStatus
removedInformerSpec
,InformerStatus
removedResourceSpecMap
,ResourceStatusMap
removed
WatchEvents
removedWatchEvent
exposed, and now wraps `Resource<T, U>``
- added
Informer
struct dedicated to handling events - Reflectors no longer cache
events
- see #6
- ResourceMap now contains the full Resource<T,U> struct rather than a tuple as the value. =>
value.metadata
is available in the cache. - Reflectors now also cache
events
to allow apps to handle them
Named
trait removed (inferring from metadata.name now)- Reflectors now take two type parameters (unless you use
ReflectorSpec
orReflectorStatus
) - see examples for usage - Native kube types supported via
ApiResource
- Some native kube resources have easy converters to
ApiResource