我可以让kubectl使用以下命令创建一组文件的configmap
kubectl create configmap configmap2 --from-file foldername
其中foldername包含具有密钥和值的文件
现在,我想使用Java创建一个具有相同文件夹的K8s配置映射。我不想使用任何图书馆。我有什么办法做到这一点吗?
是的,你可以做到,但这并不容易——你必须:
- 列出所有文件(可以使用
java.nio.file.Files
( - 创建文件的base64表示形式(为此使用
java.util.Base64
( -
创建一个表示文件和元数据的JSON(为此必须使用字符串连接(。JSON应该看起来像的输出
kubectl create configmap configmap2 --from-file foldername --dry-run -o json
-
使用正确的身份验证(使用新的HTTP客户端(将其发布到Kubernetes API服务器
使用Kubernetes Java客户端会更容易(例如:fabric8io客户端,Kubernete官方客户端(。
以下是您必须向Kubernetes API服务器发出的API请求,以创建ConfigMap:
POST /api/v1/namespaces/{namespace}/configmaps
数据必须是此处指定的ConfigMap JSON对象。
如果不使用库,则还必须在请求中包含正确的凭据,通常是令牌(Authorization: Bearer <token>
(或证书。
提示:
您可以使用kubectl create configmap -v 10 configmap2 --from-file foldername
(注意-v 10
(查看kubectl向API服务器发出的确切HTTP请求。