/x/kubernetes_apis
Purpose
Generated, typed interfaces to make every possible Kubernetes API request and work with richer data structures.
Actual request transports implemented in /x/kubernetes_client
.
S
Usage
Here's a basic request, listing all Pods in the default
namespace.
It uses the autoDetectClient()
entrypoint which returns the first usable client.
import { autoDetectClient } from 'https://deno.land/x/kubernetes_client/mod.ts';
import { CoreV1Api } from 'https://deno.land/x/kubernetes_apis/builtin/core@v1/mod.ts';
const kubernetes = await autoDetectClient();
const coreApi = new CoreV1Api(kubernetes).namespace("default");
const podList = await coreApi.getPodList();
console.log(podList);
// see files in examples/ for more API demos (watching , etc)
When running locally (with kubectl
set up), you probably just to add --allow-run
to run this.
For a container being deployed onto a cluster, there's more flags to provide instead;
see /x/kubernetes_client
for more information.
Changelog
v0.1.0
on2020-11-17
: Initial release, with 'builtin' APIs generated from K8s v1.19. There's still a fair amount of TODOs for particular resources, and structure types. A workable Reflector implementation is included. cert-manager's CRDs have a generated client as well, as an experiment.
TODO
- PATCH requests
- Solidify Quantity, Duration, etc
- Story for generating API clients directly from CRD specifications
- Story for generating the whole API surface of a specific cluster
- Add filtering to Reflector implementation (e.g. by annotation)