View Source Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

unreleased

Unreleased

1-1-1-2022-03-01

[1.1.1] - 2022-03-01

fixed

Fixed

  • Initialize authorization header as valid keyword list #142
  • Restore deprecated K8s.Sys.Event module.

1-1-0-2022-02-21

[1.1.0] - 2022-02-21

added

Added

changed

Changed

  • Handle generic kubernetes response Failure without a reason #120
  • Replace Notion with Telemetry and improve Logging #128

deprecated

Deprecated

fixed-1

Fixed

  • Preserve namespace in get_to_list/1 #122, #123
  • Fix obsolete doc on wait operation #118
  • Dialyzer errors with K8s.Client functions #119
  • Enable peer certificate authentication #127. Be aware, this will break configurations that have been using incorrect certificate(s) up to this point.

1-0-0-2021-07-19

[1.0.0] - 2021-07-19

added-1

Added

  • K8s.Resource.NamedList.access!/1 raises if item is missing
  • K8s.Operation.put_label_selector/2
  • K8s.Operation.get_label_selector/1
  • Per connection http provider configuration
  • K8s.Operation now uses keyword lists for query_params instead of maps

changed-1

Changed

  • error tuples refactored away from binary and atom to exception modules
  • removed dialyzer exceptions
  • K8s.Conn.from_file/2 now returns an ok or error tuple
  • K8s.Conn.from_service_account/N now returns an ok or error tuple
  • K8s.Conn.t() is now the first argument in all runners. K8s.Operation.t() is now the second.
  • deprecated K8s.http_provider/0
  • deprecated K8s.Discovery.default_opts/0
  • deprecated K8s.Discovery.default_driver/0
  • Refactored cluster names to strings
  • K8s.Resource.NamedList.access/1 deals better with missing items now
  • Removed K8s.Client.run/4, use K8s.Client.run/3 to pass options to HTTP provider
  • Middleware moved to K8s.Conn.Middleware

removed

Removed

  • K8s.Conn.lookup/1
  • config.exs based cluster registration is no longer supported, build K8s.Conn using K8s.Conn module
  • environment variable based cluster registration has been removed and may be moved to an external library

0-5-2-2020-07-31

[0.5.2] - 2020-07-31

added-2

Added

  • Added auth exec support

0-5-1-2020-07-17

[0.5.1] - 2020-07-17

added-3

Added

  • K8s.Operation struct query_params field
  • BasicAuth auth provider
  • Deprecated HTTPoison options being passed to K8s.Client.Runner.base
  • K8s.Operation.put_query_param/3 to add query parameters by key
  • K8s.Operation.get_query_param/3 to get a query parameter by key
  • DigitalOcean authentication
  • K8s.Resource.NamedList.access/1 - Accessor for lists with named items (containers, env, ...) (#82)

changed-2

Changed

  • Refactored old references to cluster_name to conn

0-5-0-2020-02-12

[0.5.0] - 2020-02-12

added-4

Added

  • #42 Request middleware support
  • #43 Just in time discovery: K8s.Discovery
  • #44 Support for ad-hoc connections. K8s.Conn based functions. Build your own Conn at runtime or config mix/env vars. No more Cluster registry.
  • K8s.Resource.from_file/2 and K8s.Resource.all_from_file/2 - non-exception versions

removed-1

Removed

  • Boot time discovery K8s.Cluster.Discovery
  • K8s.Cluster.base_url/1
  • Remove K8s.Cluster*

0-4-0-2019-08-29

[0.4.0] - 2019-08-29

changed-3

Changed

  • Renamed K8s.Conf to K8s.Conn
  • Refactored :conf configuration key to :conn

0-3-2-2019-08-15

[0.3.2] - 2019-08-15

added-5

Added

changed-4

Changed

0-3-1-2019-08-15

[0.3.1] - 2019-08-15

added-6

Added

  • text/plain response handling
  • K8s.Selector - labelSelector support for K8s.Operation

0-3-0-2019-07-29

[0.3.0] - 2019-07-29

added-7

Added

  • K8s.Client.DynamicHTTPProvider to allow per-process registering of HTTP request handlers.
  • K8s.Cluster.Discovery discovery interface
  • K8s.Cluster.Discovery.api_versions/1 - queries a cluster for all apiVersions
  • K8s.Cluster.Discovery.resource_definitions/1 - queries a cluster for all resource definitions
  • K8s.Cluster.Discovery.HTTPDriver for discovery via k8s REST API
  • K8s.Cluster.Discovery.FileDriver for discovery via a file, used for testing, shipped to help dependent libraries mock discovery
  • Support for creating subresources
  • Support for getting subresources
  • Support for updating subresources

changed-5

Changed

  • Refactored tests on DynamicHTTPProvider
  • Refactored discovery to use K8s.Cluster.Discovery
  • Set correct content-type for patch operations (https://github.com/coryodaniel/k8s/issues/32)
  • Refactored Operation.kind -> Operation.name
  • Group.cluster_key/2 -> Group.lookup_key/2
  • K8s.Cluster.Group :ets data structure changed to map
  • K8s.Cluster.Group module encompases access to :ets table
  • Refactored Operation.resource -> Operation.data. The term resource is a bit overloaded in this repo, since the operation is encapsulating the HTTP request, data feels a bit more clear.
  • Refactored internal references to "group version" to "api version"

0-2-13-2019-06-27

[0.2.13] - 2019-06-27

added-8

Added

  • K8s.Cluster.base_url/1

0-2-12-2019-06-26

[0.2.12] - 2019-06-26

added-9

Added

  • First K8s.Client.Runner.Stream evaluation made lazy
  • K8s.Resource.api_version/1

0-2-11-2019-06-24

[0.2.11] - 2019-06-24

added-10

Added

  • K8s.Resource.cpu/1 parses cpu resource requests/limits strings to number
  • K8s.Resource.memory/1 parses cpu resource requests/limits strings to number

0-2-10-2019-06-24

[0.2.10] - 2019-06-24

added-11

Added

  • K8s.Client.Runner.Stream for producing elixir streams from k8s list results
  • K8s 1.15 swagger file

changed-6

Changed

  • Reversed pattern matching in functions from var=pattern to pattern=var
  • Added make target for fetching master swagger before running tests

0-2-9-2019-06-10

[0.2.9] - 2019-06-10

added-12

Added

  • Kubernetes resources, groups, and CRDs are autodiscovered at boot time. No swagger file to include or override.
  • Client supports standard HTTP calls, async batches, wait on status, and watchers
  • Supports multiple clusters
  • Supports multiple kubernetes APIs in the same runtime
  • serviceaccount authentication
  • token authentication
  • certificate authentication
  • auth-provider authetnicati
  • Tested against kubernetes swagger specs: 1.10+ and master
  • CRD support
  • Kubernetes resource and version helper functions
  • Kube config file parsing
  • Pluggable auth providers