curlでKubernetesAPI

方法

  1. caとclient-certとclient-keyをkubeconfigから抽出する。
k config view --raw  | yq .clusters[0].cluster.certificate-authority-data | tr -d '\n' | base64 -d > ca                                                           
k config view --raw  | yq .users[0].user.client-certificate-data | tr -d '\n' | base64 -d > cert                                                                 
k config view --raw  | yq .users[0].user.client-key-data | tr -d '\n' | base64 -d  > key
  1. kube-api-serverのエンドポイントとcacert, cert, keyをそれぞれ指定して、curlを実行する。
curl $(k config view | yq .clusters[0].cluster.server) --cacert ca --key key --cert cert

※ 対象のclusterとuserがkubeconfigの.clusterと.userの最初のエントリになっていることを想定している。

kubectl get podscurlでやる例

curl $(k config view | yq .clusters[0].cluster.server)/api/v1/namespaces/default/pods --cacert ca --key key --cert cert