← All Modules

assay.k8s

Kubernetes API client. 30+ resource types, CRDs, readiness checks, pod logs, rollouts. Module-level functions: auto-discovers cluster API via KUBERNETES_SERVICE_HOST env var. Auth: uses service account token from /var/run/secrets/kubernetes.io/serviceaccount/token. All functions accept optional opts with {base_url, token} overrides.

Supported kinds: pod, service, secret, configmap, endpoints, serviceaccount, persistentvolumeclaim (pvc), limitrange, resourcequota, event, namespace, node, persistentvolume (pv), deployment, statefulset, daemonset, replicaset, job, cronjob, ingress, ingressclass, networkpolicy, storageclass, role, rolebinding, clusterrole, clusterrolebinding, hpa, poddisruptionbudget (pdb).

CRD Registration

Raw HTTP Verbs

Resources (M.resources)

Generic CRUD operations for any resource kind.

Secrets (M.secrets)

ConfigMaps (M.configmaps)

Pods (M.pods)

Services (M.services)

Deployments (M.deployments)

Nodes (M.nodes)

Namespaces (M.namespaces)

Events (M.events)

Backward Compatibility

All legacy flat functions (M.get_resource, M.list, M.get_secret, M.pod_status, etc.) remain available and delegate to the sub-objects above.

Example:

local k8s = require("assay.k8s")

-- New sub-object style
k8s.resources:wait_ready("default", "deployment", "my-app", 120)
local secret = k8s.secrets:get("default", "my-secret")
log.info("DB password: " .. secret["password"])

-- Legacy style still works
k8s.wait_ready("default", "deployment", "my-app", 120)
local secret = k8s.get_secret("default", "my-secret")