k8s
Open source container management platform.
total methods: 267
total selectable resources: 24
See also:
[SHOW] [DESCRIBE] [REGISTRY]
Installation
To pull the latest version of the k8s provider, run the following command:
REGISTRY PULL k8s;
To view previous provider versions or to pull a specific provider version, see here.
Authentication
cluster_addr is a required parameter for all operations using the k8s provider, for example:
SELECT name, namespace, uid, creationTimestamp
FROM k8s.core_v1.service_account
WHERE cluster_addr = '35.244.65.136' AND namespace = 'kube-system'
ORDER BY name ASC;
Example using kubectl proxy
kubectl proxy is the default authentication method for the k8s provider, no other variables or configuration is necessary to query the k8s provider if you are using this method.
The protocol parameter is required when accessing a Kubernetes cluster via kubectl proxy, see the example below:
select name, namespace, uid, creationTimestamp
from k8s.core_v1.pod
where protocol = 'http'
and cluster_addr = 'localhost:8080'
order by name asc limit 3;
Example using direct cluster access
If you are using an access token to access the k8s API, follow the instructions below (use exec instead of shell for non interactive operations):
export K8S_TOKEN='eyJhbGciOiJ...'
AUTH='{ "k8s": { "type": "bearer", "credentialsenvvar": "K8S_TOKEN" } }'
stackql shell --auth="${AUTH}" --tls.CABundle k8s_cert_bundle.pem
You will need to generate a certificate bundle for your cluster (k8s_cert_bundle.pem in the preceeding example), you can use the following code to generate this (for MacOS or Linux):
kubectl get secret -o jsonpath="{.items[?(@.type=="kubernetes.io/service-account-token")].data['ca\.crt']}" | base64 -i --decode > k8s_cert_bundle.pem
Alternatively, you could add the --tls.allowInsecure=true argument to the stackql command, it is not recommended however.
Server Parameters
The following parameters may be required for the k8s provider:
protocol-httpsorhttp(default:https)cluster_addr- The hostname of the Kubernetes cluster (default:localhost)
This parameter would be supplied to the WHERE clause of each SELECT statement.