【发布时间】:2022-09-27 19:54:02
【问题描述】:
任何人都知道如何使用 go-client 创建自定义资源。基本上相当于 kubectl apply -f \'yaml path\'
apiVersion: k6.io/v1alpha1
kind: K6
metadata:
name: k6-sample
spec:
parallelism: 1
#arguments: --out statsd
#cleanup: post
script:
configMap:
name: \"staging-stress-test\"
file: \"staging.js\"
有一个 go-client 代码来生成下面的自定义资源
func createk6CR(clientset *kubernetes.Clientset) (string, error) {
k6plugin := &v1alpha1.K6{
TypeMeta: metav1.TypeMeta{
APIVersion: \"k6.io/v1alpha1\",
Kind: \"K6\",
},
ObjectMeta: metav1.ObjectMeta{
Name: \"k6-sample-1\",
Namespace: \"default\",
},
Spec: v1alpha1.K6Spec{
Parallelism: 3,
Script: v1alpha1.K6Script{
ConfigMap: v1alpha1.K6Configmap{
Name: \"staging-stress-test\",
File: \"staging.js\",
},
},
},
// Status: v1alpha1.K6Status{
// Stage: \"started\",
// },
}
body, err := json.Marshal(k6plugin)
if err != nil {
fmt.Printf(\"error getting Kubernetes config: %v\\n\", err)
os.Exit(1)
}
data, err := clientset.RESTClient().
Post().
AbsPath(\"/apis/k6.io/v1alpha1/namespaces/default/k6\").
Body(body).
DoRaw(context.TODO())
if data != nil {
str := string(data[:])
fmt.Printf(\"return data: %v\\n\", str)
//os.Exit(1)
}
return \"success\", err
}
但是我在 AbsPath(\"/apis/k6.io/v1alpha1/namespaces/default/k6\") 上找不到第 404 页。
标签: go k6 kubernetes-go-client kubernetes-custom-resources