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:
co-authored by
Pranoy Kundu
parent
657aee7cc2
commit
56b49dcee8
+46
-10
@@ -20,21 +20,57 @@ import (
|
||||
"fmt"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
||||
// CacheKey : Given metadata, create a key that uniquely identifies the contents
|
||||
// of the object. Since resourceVersion changes on every update and
|
||||
// UIDs are unique, uid+resourceVersion identifies the
|
||||
// content. (ResourceVersion may also update on status updates, so
|
||||
// this will result in some unnecessary cache misses. That should be
|
||||
// ok.)
|
||||
func CacheKey(metadata *metav1.ObjectMeta) string {
|
||||
return fmt.Sprintf("%v_%v", metadata.UID, metadata.ResourceVersion)
|
||||
type CacheKeyUR struct {
|
||||
UID types.UID
|
||||
ResourceVersion string
|
||||
}
|
||||
|
||||
func (ck CacheKeyUR) String() string {
|
||||
return fmt.Sprintf("%v_%v", ck.UID, ck.ResourceVersion)
|
||||
}
|
||||
|
||||
type CacheKeyURG struct {
|
||||
UID types.UID
|
||||
ResourceVersion string
|
||||
Generation int64
|
||||
}
|
||||
|
||||
func (ck CacheKeyURG) String() string {
|
||||
return fmt.Sprintf("%v_%v_%v", ck.UID, ck.ResourceVersion, ck.Generation)
|
||||
}
|
||||
|
||||
// CacheKeyForUID create a key that uniquely identifies the
|
||||
// of the object. Since resourceVersion changes on every update and
|
||||
// UIDs are unique, we don't use resource version here
|
||||
func CacheKeyUID(metadata *metav1.ObjectMeta) string {
|
||||
return fmt.Sprintf("%v", metadata.UID)
|
||||
func CacheKeyUIDFromMeta(metadata *metav1.ObjectMeta) types.UID {
|
||||
return metadata.UID
|
||||
}
|
||||
|
||||
// CacheKeyURFromMeta : Given metadata, create a key that uniquely identifies the contents
|
||||
// of the object. Since resourceVersion changes on every update and
|
||||
// UIDs are unique, uid+resourceVersion identifies the
|
||||
// content. (ResourceVersion may also update on status updates, so
|
||||
// this will result in some unnecessary cache misses. That should be
|
||||
// ok.)
|
||||
func CacheKeyURFromMeta(metadata *metav1.ObjectMeta) CacheKeyUR {
|
||||
return CacheKeyUR{
|
||||
UID: metadata.UID,
|
||||
ResourceVersion: metadata.ResourceVersion,
|
||||
}
|
||||
}
|
||||
|
||||
// CacheKeyURGFromMeta : Given metadata, create a key that uniquely identifies the contents
|
||||
// of the object. Since resourceVersion changes on every update and
|
||||
// UIDs are unique, uid+resourceVersion identifies the
|
||||
// content.
|
||||
// Generation is also included to identify latest generation of the object.
|
||||
func CacheKeyURGFromMeta(metadata *metav1.ObjectMeta) CacheKeyURG {
|
||||
return CacheKeyURG{
|
||||
UID: metadata.UID,
|
||||
ResourceVersion: metadata.ResourceVersion,
|
||||
Generation: metadata.Generation,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user