mirror of
https://github.com/stakater/Reloader.git
synced 2026-02-14 18:09:50 +00:00
* Add implementation for create event Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Add sleep in testcase Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Fix test case data Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Remove unnecessary dashes from chart Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Fix new env var creation issue Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Optimize upgrade code Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Update logs Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Initial implementation to perform rolling upgrades by auto referencing the resources Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Fix nil pointer exception Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Fix test cases Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Add test cases Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Update test case verify method Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Add missing name for envs Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Update annotation name Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Update readme Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Update readme Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Implement Golang CI comment Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com> * Implement Golang CI comment Signed-off-by: faizanahmad055 <faizan.ahmad55@outlook.com>
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package util
|
|
|
|
import (
|
|
"reflect"
|
|
"strconv"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
// InterfaceSlice converts an interface to an interface array
|
|
func InterfaceSlice(slice interface{}) []interface{} {
|
|
s := reflect.ValueOf(slice)
|
|
if s.Kind() != reflect.Slice {
|
|
logrus.Errorf("InterfaceSlice() given a non-slice type")
|
|
}
|
|
|
|
ret := make([]interface{}, s.Len())
|
|
|
|
for i := 0; i < s.Len(); i++ {
|
|
ret[i] = s.Index(i).Interface()
|
|
}
|
|
|
|
return ret
|
|
}
|
|
|
|
type ObjectMeta struct {
|
|
metav1.ObjectMeta
|
|
}
|
|
|
|
func ToObjectMeta(kubernetesObject interface{}) ObjectMeta {
|
|
objectValue := reflect.ValueOf(kubernetesObject)
|
|
fieldName := reflect.TypeOf((*metav1.ObjectMeta)(nil)).Elem().Name()
|
|
field := objectValue.FieldByName(fieldName).Interface().(metav1.ObjectMeta)
|
|
|
|
return ObjectMeta{
|
|
ObjectMeta: field,
|
|
}
|
|
}
|
|
|
|
// ParseBool returns result in bool format after parsing
|
|
func ParseBool(value interface{}) bool {
|
|
if reflect.Bool == reflect.TypeOf(value).Kind() {
|
|
return value.(bool)
|
|
} else if reflect.String == reflect.TypeOf(value).Kind() {
|
|
result, _ := strconv.ParseBool(value.(string))
|
|
return result
|
|
}
|
|
return false
|
|
}
|