feat(crd): add kube api and crds

This commit is contained in:
2024-11-30 19:04:02 +03:30
parent e95634c942
commit 19b874cba6
14 changed files with 600 additions and 3 deletions

38
internal/crd/new.go Normal file
View File

@@ -0,0 +1,38 @@
package crd
import (
"k8s.io/client-go/dynamic"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
type Crd struct {
client dynamic.NamespaceableResourceInterface
}
func New() {
// Get Kubernetes config
config, err := clientcmd.BuildConfigFromFlags("", clientcmd.RecommendedHomeFile)
if err != nil {
config, err = rest.InClusterConfig()
if err != nil {
panic(err)
}
}
// Create dynamic client
dynamicClient, err := dynamic.NewForConfig(config)
if err != nil {
panic(err)
}
// Get FlinkJob resource interface
flinkJobClient := dynamicClient.Resource(flinkJobGVR)
crd := Crd{
client: flinkJobClient,
}
// Watch for FlinkJob creation
go crd.watchFlinkJobs()
}