feat: add manager
This commit is contained in:
26
internal/crd/repo.go
Normal file
26
internal/crd/repo.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package crd
|
||||
|
||||
import (
|
||||
"flink-kube-operator/internal/crd/v1alpha1"
|
||||
"maps"
|
||||
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
||||
var jobs = map[types.UID]*v1alpha1.FlinkJob{}
|
||||
|
||||
func (crd Crd) repsert(job *v1alpha1.FlinkJob) {
|
||||
jobs[job.GetUID()] = job
|
||||
}
|
||||
|
||||
func GetJob(uid types.UID) v1alpha1.FlinkJob {
|
||||
return *jobs[uid].DeepCopy()
|
||||
}
|
||||
|
||||
func GetAllJobKeys() []types.UID {
|
||||
keys := []types.UID{}
|
||||
for k := range maps.Keys(jobs) {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
return keys
|
||||
}
|
||||
@@ -40,25 +40,13 @@ func (crd Crd) watchFlinkJobs() {
|
||||
case watch.Modified:
|
||||
fmt.Printf("FlinkJob updated: %s\n", job.GetName())
|
||||
// Handle the new FlinkJob
|
||||
handleNewFlinkJob(job)
|
||||
crd.repsert(job)
|
||||
case watch.Added:
|
||||
fmt.Printf("New FlinkJob created: %s\n", job.GetName())
|
||||
// Handle the new FlinkJob
|
||||
handleNewFlinkJob(job)
|
||||
crd.repsert(job)
|
||||
case watch.Deleted:
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func handleNewFlinkJob(job *v1alpha1.FlinkJob) {
|
||||
// Extract job details
|
||||
name := job.GetName()
|
||||
namespace := job.GetNamespace()
|
||||
|
||||
// Process job specification
|
||||
fmt.Printf("Processing FlinkJob %s in namespace %s kind: %s \n", name, namespace, job.Kind)
|
||||
|
||||
lc.Logger.Debug("[crd] [watch]", zap.Any("spec", job), zap.Any("name", job.Spec.Name))
|
||||
// Add your custom logic here
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user