Ability to retain specialised pods for poolmanager functions (#2830)

- added retainPods flag to take in the number of specialized pods to retain
- add retainPods in both the create function and update function command
- modify crd keys to be typed instead of string
- keep track of function generation in case of update function operation
- add delete handler function to make sure specialized pods are deleted in case function is deleted

---------

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
Signed-off-by: Pranoy Kundu <pranoy1998k@gmail.com>
Co-authored-by: Pranoy Kundu <pranoy1998k@gmail.com>
This commit is contained in:
Sanket Sudake
2023-09-27 13:33:19 +05:30
committed by GitHub
co-authored by Pranoy Kundu
parent 657aee7cc2
commit 56b49dcee8
26 changed files with 405 additions and 211 deletions
+3 -2
View File
@@ -21,6 +21,7 @@ import (
"github.com/robfig/cron/v3"
"go.uber.org/zap"
"k8s.io/apimachinery/pkg/types"
fv1 "github.com/fission/fission/pkg/apis/core/v1"
"github.com/fission/fission/pkg/publisher"
@@ -36,7 +37,7 @@ const (
type (
Timer struct {
logger *zap.Logger
triggers map[string]*timerTriggerWithCron
triggers map[types.UID]*timerTriggerWithCron
publisher *publisher.Publisher
}
@@ -49,7 +50,7 @@ type (
func MakeTimer(logger *zap.Logger, publisher publisher.Publisher) *Timer {
timer := &Timer{
logger: logger.Named("timer"),
triggers: make(map[string]*timerTriggerWithCron),
triggers: make(map[types.UID]*timerTriggerWithCron),
publisher: &publisher,
}
return timer