Use code-generator to generate clientset/informer/lister (#1492)
To reduce maintenance effort and avoid writing duplicate informer code, use code-generator to generate clientset/informer/lister code.
This commit is contained in:
@@ -367,7 +367,7 @@ func applyResources(fclient client.Interface, specDir string, fr *FissionResourc
|
||||
// that as an error, so that we encourage self-contained specs.
|
||||
// Is there a good use case for non-self contained specs?
|
||||
return nil, nil, errors.Errorf("function %v/%v references package %v/%v, which doesn't exist in the specs",
|
||||
f.Metadata.Namespace, f.Metadata.Name, f.Spec.Package.PackageRef.Namespace, f.Spec.Package.PackageRef.Name)
|
||||
f.ObjectMeta.Namespace, f.ObjectMeta.Name, f.Spec.Package.PackageRef.Namespace, f.Spec.Package.PackageRef.Name)
|
||||
}
|
||||
fr.Functions[i].Spec.Package.PackageRef.ResourceVersion = m.ResourceVersion
|
||||
}
|
||||
@@ -532,14 +532,14 @@ func waitForPackageBuild(fclient client.Interface, pkg *fv1.Package) (*fv1.Packa
|
||||
return pkg, nil
|
||||
}
|
||||
if time.Since(start) > 5*time.Minute {
|
||||
return nil, errors.Errorf("package %v has been building for a while, giving up on waiting for it", pkg.Metadata.Name)
|
||||
return nil, errors.Errorf("package %v has been building for a while, giving up on waiting for it", pkg.ObjectMeta.Name)
|
||||
}
|
||||
|
||||
// TODO watch instead
|
||||
time.Sleep(time.Second)
|
||||
|
||||
var err error
|
||||
pkg, err = fclient.V1().Package().Get(&pkg.Metadata)
|
||||
pkg, err = fclient.V1().Package().Get(&pkg.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -556,7 +556,7 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// filter
|
||||
objs := make([]fv1.Package, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -564,7 +564,7 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// index
|
||||
existent := make(map[string]fv1.Package)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -576,13 +576,13 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// create or update desired state
|
||||
for _, o := range fr.Packages {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
keep := false
|
||||
@@ -598,10 +598,10 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
|
||||
if keep && existingObj.Status.BuildStatus == fv1.BuildStatusSucceeded {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
|
||||
// We may be racing against the package builder to update the
|
||||
// package (a previous version might have been getting built). So,
|
||||
@@ -609,7 +609,7 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
pkg, err := waitForPackageBuild(fclient, &o)
|
||||
if err != nil {
|
||||
// log and ignore
|
||||
console.Warn(fmt.Sprintf("Error waiting for package '%v' build, ignoring", o.Metadata.Name))
|
||||
console.Warn(fmt.Sprintf("Error waiting for package '%v' build, ignoring", o.ObjectMeta.Name))
|
||||
pkg = &o
|
||||
}
|
||||
|
||||
@@ -625,7 +625,7 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -634,7 +634,7 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,14 +642,14 @@ func applyPackages(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().Package().Delete(&o.Metadata)
|
||||
err := fclient.V1().Package().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -667,7 +667,7 @@ func applyFunctions(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// filter
|
||||
objs := make([]fv1.Function, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -675,7 +675,7 @@ func applyFunctions(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// index
|
||||
existent := make(map[string]fv1.Function)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -687,28 +687,28 @@ func applyFunctions(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
// create or update desired state
|
||||
for _, o := range fr.Functions {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().Function().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -717,7 +717,7 @@ func applyFunctions(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -725,14 +725,14 @@ func applyFunctions(fclient client.Interface, fr *FissionResources, delete bool)
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().Function().Delete(&o.Metadata)
|
||||
err := fclient.V1().Function().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -750,7 +750,7 @@ func applyEnvironments(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// filter
|
||||
objs := make([]fv1.Environment, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -758,7 +758,7 @@ func applyEnvironments(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// index
|
||||
existent := make(map[string]fv1.Environment)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -770,28 +770,28 @@ func applyEnvironments(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// create or update desired state
|
||||
for _, o := range fr.Environments {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().Environment().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -800,7 +800,7 @@ func applyEnvironments(fclient client.Interface, fr *FissionResources, delete bo
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -808,14 +808,14 @@ func applyEnvironments(fclient client.Interface, fr *FissionResources, delete bo
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().Environment().Delete(&o.Metadata)
|
||||
err := fclient.V1().Environment().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -833,7 +833,7 @@ func applyHTTPTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// filter
|
||||
objs := make([]fv1.HTTPTrigger, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -841,7 +841,7 @@ func applyHTTPTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// index
|
||||
existent := make(map[string]fv1.HTTPTrigger)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -853,28 +853,28 @@ func applyHTTPTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// create or update desired state
|
||||
for _, o := range fr.HttpTriggers {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().HTTPTrigger().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -883,7 +883,7 @@ func applyHTTPTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -891,14 +891,14 @@ func applyHTTPTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().HTTPTrigger().Delete(&o.Metadata)
|
||||
err := fclient.V1().HTTPTrigger().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -916,7 +916,7 @@ func applyKubernetesWatchTriggers(fclient client.Interface, fr *FissionResources
|
||||
// filter
|
||||
objs := make([]fv1.KubernetesWatchTrigger, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -924,7 +924,7 @@ func applyKubernetesWatchTriggers(fclient client.Interface, fr *FissionResources
|
||||
// index
|
||||
existent := make(map[string]fv1.KubernetesWatchTrigger)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -936,28 +936,28 @@ func applyKubernetesWatchTriggers(fclient client.Interface, fr *FissionResources
|
||||
// create or update desired state
|
||||
for _, o := range fr.KubernetesWatchTriggers {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().KubeWatcher().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -966,7 +966,7 @@ func applyKubernetesWatchTriggers(fclient client.Interface, fr *FissionResources
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -974,14 +974,14 @@ func applyKubernetesWatchTriggers(fclient client.Interface, fr *FissionResources
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().KubeWatcher().Delete(&o.Metadata)
|
||||
err := fclient.V1().KubeWatcher().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -999,7 +999,7 @@ func applyTimeTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// filter
|
||||
objs := make([]fv1.TimeTrigger, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -1007,7 +1007,7 @@ func applyTimeTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// index
|
||||
existent := make(map[string]fv1.TimeTrigger)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -1019,28 +1019,28 @@ func applyTimeTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
// create or update desired state
|
||||
for _, o := range fr.TimeTriggers {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().TimeTrigger().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -1049,7 +1049,7 @@ func applyTimeTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1057,14 +1057,14 @@ func applyTimeTriggers(fclient client.Interface, fr *FissionResources, delete bo
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().TimeTrigger().Delete(&o.Metadata)
|
||||
err := fclient.V1().TimeTrigger().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1082,7 +1082,7 @@ func applyMessageQueueTriggers(fclient client.Interface, fr *FissionResources, d
|
||||
// filter
|
||||
objs := make([]fv1.MessageQueueTrigger, 0)
|
||||
for _, o := range allObjs {
|
||||
if hasDeploymentConfig(&o.Metadata, fr) {
|
||||
if hasDeploymentConfig(&o.ObjectMeta, fr) {
|
||||
objs = append(objs, o)
|
||||
}
|
||||
}
|
||||
@@ -1090,7 +1090,7 @@ func applyMessageQueueTriggers(fclient client.Interface, fr *FissionResources, d
|
||||
// index
|
||||
existent := make(map[string]fv1.MessageQueueTrigger)
|
||||
for _, obj := range objs {
|
||||
existent[mapKey(&obj.Metadata)] = obj
|
||||
existent[mapKey(&obj.ObjectMeta)] = obj
|
||||
}
|
||||
metadataMap := make(map[string]metav1.ObjectMeta)
|
||||
|
||||
@@ -1102,28 +1102,28 @@ func applyMessageQueueTriggers(fclient client.Interface, fr *FissionResources, d
|
||||
// create or update desired state
|
||||
for _, o := range fr.MessageQueueTriggers {
|
||||
// apply deploymentConfig so we can find our objects on future apply invocations
|
||||
applyDeploymentConfig(&o.Metadata, fr)
|
||||
applyDeploymentConfig(&o.ObjectMeta, fr)
|
||||
|
||||
// index desired state
|
||||
desired[mapKey(&o.Metadata)] = true
|
||||
desired[mapKey(&o.ObjectMeta)] = true
|
||||
|
||||
// exists?
|
||||
existingObj, ok := existent[mapKey(&o.Metadata)]
|
||||
existingObj, ok := existent[mapKey(&o.ObjectMeta)]
|
||||
if ok {
|
||||
// ok, a resource with the same name exists, is it the same?
|
||||
if reflect.DeepEqual(existingObj.Spec, o.Spec) {
|
||||
// nothing to do on the server
|
||||
metadataMap[mapKey(&o.Metadata)] = existingObj.Metadata
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = existingObj.ObjectMeta
|
||||
} else {
|
||||
// update
|
||||
o.Metadata.ResourceVersion = existingObj.Metadata.ResourceVersion
|
||||
o.ObjectMeta.ResourceVersion = existingObj.ObjectMeta.ResourceVersion
|
||||
newmeta, err := fclient.V1().MessageQueueTrigger().Update(&o)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Updated = append(ras.Updated, newmeta)
|
||||
// keep track of metadata in case we need to create a reference to it
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
} else {
|
||||
// create
|
||||
@@ -1132,7 +1132,7 @@ func applyMessageQueueTriggers(fclient client.Interface, fr *FissionResources, d
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Created = append(ras.Created, newmeta)
|
||||
metadataMap[mapKey(&o.Metadata)] = *newmeta
|
||||
metadataMap[mapKey(&o.ObjectMeta)] = *newmeta
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1140,14 +1140,14 @@ func applyMessageQueueTriggers(fclient client.Interface, fr *FissionResources, d
|
||||
if delete {
|
||||
// objs is already filtered with our UID
|
||||
for _, o := range objs {
|
||||
_, wanted := desired[mapKey(&o.Metadata)]
|
||||
_, wanted := desired[mapKey(&o.ObjectMeta)]
|
||||
if !wanted {
|
||||
err := fclient.V1().MessageQueueTrigger().Delete(&o.Metadata)
|
||||
err := fclient.V1().MessageQueueTrigger().Delete(&o.ObjectMeta)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ras.Deleted = append(ras.Deleted, &o.Metadata)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.Metadata.Namespace, o.Metadata.Name)
|
||||
ras.Deleted = append(ras.Deleted, &o.ObjectMeta)
|
||||
fmt.Printf("Deleted %v %v/%v\n", o.TypeMeta.Kind, o.ObjectMeta.Namespace, o.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ func (w *packageBuildWatcher) watch(ctx context.Context) {
|
||||
keepWaiting := false
|
||||
buildpkgs := make([]fv1.Package, 0)
|
||||
for _, pkg := range pkgs {
|
||||
_, ok := w.pkgMeta[mapKey(&pkg.Metadata)]
|
||||
_, ok := w.pkgMeta[mapKey(&pkg.ObjectMeta)]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
@@ -118,5 +118,5 @@ func (w *packageBuildWatcher) watch(ctx context.Context) {
|
||||
|
||||
func pkgKey(pkg *fv1.Package) string {
|
||||
// packages are mutable so we want to keep track of them by resource version
|
||||
return fmt.Sprintf("%v:%v:%v", pkg.Metadata.Name, pkg.Metadata.Namespace, pkg.Metadata.ResourceVersion)
|
||||
return fmt.Sprintf("%v:%v:%v", pkg.ObjectMeta.Name, pkg.ObjectMeta.Namespace, pkg.ObjectMeta.ResourceVersion)
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ func getAppliedFunctions(fns []fv1.Function, deployID string) []fv1.Function {
|
||||
var fnlist []fv1.Function
|
||||
if len(fns) > 0 {
|
||||
for _, f := range fns {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
fnlist = append(fnlist, f)
|
||||
}
|
||||
}
|
||||
@@ -133,7 +133,7 @@ func getAppliedEnvironments(envs []fv1.Environment, deployID string) []fv1.Envir
|
||||
var envlist []fv1.Environment
|
||||
if len(envs) > 0 {
|
||||
for _, f := range envs {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
envlist = append(envlist, f)
|
||||
}
|
||||
}
|
||||
@@ -145,7 +145,7 @@ func getAppliedPackages(pkgs []fv1.Package, deployID string) []fv1.Package {
|
||||
var pkglist []fv1.Package
|
||||
if len(pkgs) > 0 {
|
||||
for _, f := range pkgs {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
pkglist = append(pkglist, f)
|
||||
}
|
||||
}
|
||||
@@ -156,7 +156,7 @@ func getAppliedCanaryConfigs(canaryCfgs []fv1.CanaryConfig, deployID string) []f
|
||||
var canaryConfiglist []fv1.CanaryConfig
|
||||
if len(canaryCfgs) > 0 {
|
||||
for _, f := range canaryCfgs {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
canaryConfiglist = append(canaryConfiglist, f)
|
||||
}
|
||||
}
|
||||
@@ -168,7 +168,7 @@ func getAppliedHTTPTriggers(hts []fv1.HTTPTrigger, deployID string) []fv1.HTTPTr
|
||||
var httpTriggerlist []fv1.HTTPTrigger
|
||||
if len(hts) > 0 {
|
||||
for _, f := range hts {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
httpTriggerlist = append(httpTriggerlist, f)
|
||||
}
|
||||
}
|
||||
@@ -181,7 +181,7 @@ func getAppliedMessageQueueTriggers(mqts []fv1.MessageQueueTrigger, deployID str
|
||||
var mqTriggerlist []fv1.MessageQueueTrigger
|
||||
if len(mqts) > 0 {
|
||||
for _, f := range mqts {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
mqTriggerlist = append(mqTriggerlist, f)
|
||||
}
|
||||
}
|
||||
@@ -192,7 +192,7 @@ func getAppliedTimeTriggers(tts []fv1.TimeTrigger, deployID string) []fv1.TimeTr
|
||||
var timeTriggerlist []fv1.TimeTrigger
|
||||
if len(tts) > 0 {
|
||||
for _, f := range tts {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
timeTriggerlist = append(timeTriggerlist, f)
|
||||
}
|
||||
}
|
||||
@@ -203,7 +203,7 @@ func getSpecKubeWatchers(ws []fv1.KubernetesWatchTrigger, deployID string) []fv1
|
||||
var kubeWatchTriggerlist []fv1.KubernetesWatchTrigger
|
||||
if len(ws) > 0 {
|
||||
for _, f := range ws {
|
||||
if f.Metadata.Annotations["fission-uid"] == deployID {
|
||||
if f.ObjectMeta.Annotations["fission-uid"] == deployID {
|
||||
kubeWatchTriggerlist = append(kubeWatchTriggerlist, f)
|
||||
}
|
||||
}
|
||||
@@ -230,7 +230,7 @@ func ShowFunctions(fns []fv1.Function) {
|
||||
}
|
||||
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n",
|
||||
f.Metadata.Name, f.Spec.Environment.Name,
|
||||
f.ObjectMeta.Name, f.Spec.Environment.Name,
|
||||
f.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType,
|
||||
f.Spec.InvokeStrategy.ExecutionStrategy.MinScale,
|
||||
f.Spec.InvokeStrategy.ExecutionStrategy.MaxScale,
|
||||
@@ -255,7 +255,7 @@ func ShowEnvironments(envs []fv1.Environment) {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n", "NAME", "IMAGE", "BUILDER_IMAGE", "POOLSIZE", "MINCPU", "MAXCPU", "MINMEMORY", "MAXMEMORY", "EXTNET", "GRACETIME")
|
||||
for _, env := range envs {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n",
|
||||
env.Metadata.Name, env.Spec.Runtime.Image, env.Spec.Builder.Image, env.Spec.Poolsize,
|
||||
env.ObjectMeta.Name, env.Spec.Runtime.Image, env.Spec.Builder.Image, env.Spec.Poolsize,
|
||||
env.Spec.Resources.Requests.Cpu(), env.Spec.Resources.Limits.Cpu(),
|
||||
env.Spec.Resources.Requests.Memory(), env.Spec.Resources.Limits.Memory(),
|
||||
env.Spec.AllowAccessToExternalNetwork, env.Spec.TerminationGracePeriod)
|
||||
@@ -272,7 +272,7 @@ func ShowPackages(pkgList []fv1.Package) {
|
||||
fmt.Fprintf(w, "%v\n", "Packages:")
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\n", "NAME", "BUILD_STATUS", "ENV", "LASTUPDATEDAT")
|
||||
for _, pkg := range pkgList {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\n", pkg.Metadata.Name, pkg.Status.BuildStatus, pkg.Spec.Environment.Name, pkg.Status.LastUpdateTimestamp.Format(time.RFC822))
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\n", pkg.ObjectMeta.Name, pkg.Status.BuildStatus, pkg.Spec.Environment.Name, pkg.Status.LastUpdateTimestamp.Format(time.RFC822))
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
w.Flush()
|
||||
@@ -287,7 +287,7 @@ func ShowCanaryConfigs(canaryCfgs []fv1.CanaryConfig) {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n", "NAME", "TRIGGER", "FUNCTION-N", "FUNCTION-N-1", "WEIGHT-INCREMENT", "INTERVAL", "FAILURE-THRESHOLD", "FAILURE-TYPE", "STATUS")
|
||||
for _, canaryCfg := range canaryCfgs {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n",
|
||||
canaryCfg.Metadata.Name, canaryCfg.Spec.Trigger, canaryCfg.Spec.NewFunction, canaryCfg.Spec.OldFunction, canaryCfg.Spec.WeightIncrement, canaryCfg.Spec.WeightIncrementDuration,
|
||||
canaryCfg.ObjectMeta.Name, canaryCfg.Spec.Trigger, canaryCfg.Spec.NewFunction, canaryCfg.Spec.OldFunction, canaryCfg.Spec.WeightIncrement, canaryCfg.Spec.WeightIncrementDuration,
|
||||
canaryCfg.Spec.FailureThreshold, canaryCfg.Spec.FailureType, canaryCfg.Status.Status)
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
@@ -327,7 +327,7 @@ func ShowHTTPTriggers(hts []fv1.HTTPTrigger) {
|
||||
ann := strings.Join(msg, ", ")
|
||||
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n",
|
||||
trigger.Metadata.Name, trigger.Spec.Method, trigger.Spec.RelativeURL, function, trigger.Spec.CreateIngress, host, path, trigger.Spec.IngressConfig.TLS, ann)
|
||||
trigger.ObjectMeta.Name, trigger.Spec.Method, trigger.Spec.RelativeURL, function, trigger.Spec.CreateIngress, host, path, trigger.Spec.IngressConfig.TLS, ann)
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
w.Flush()
|
||||
@@ -342,7 +342,7 @@ func ShowMQTriggers(mqts []fv1.MessageQueueTrigger) {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n", "NAME", "FUNCTION_NAME", "MESSAGE_QUEUE_TYPE", "TOPIC", "RESPONSE_TOPIC", "ERROR_TOPIC", "MAX_RETRIES", "PUB_MSG_CONTENT_TYPE")
|
||||
for _, mqt := range mqts {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n",
|
||||
mqt.Metadata.Name, mqt.Spec.FunctionReference.Name, mqt.Spec.MessageQueueType, mqt.Spec.Topic, mqt.Spec.ResponseTopic, mqt.Spec.ErrorTopic, mqt.Spec.MaxRetries, mqt.Spec.ContentType)
|
||||
mqt.ObjectMeta.Name, mqt.Spec.FunctionReference.Name, mqt.Spec.MessageQueueType, mqt.Spec.Topic, mqt.Spec.ResponseTopic, mqt.Spec.ErrorTopic, mqt.Spec.MaxRetries, mqt.Spec.ContentType)
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
w.Flush()
|
||||
@@ -358,7 +358,7 @@ func ShowTimeTriggers(tts []fv1.TimeTrigger) {
|
||||
for _, tt := range tts {
|
||||
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\n",
|
||||
tt.Metadata.Name, tt.Spec.Cron, tt.Spec.FunctionReference.Name)
|
||||
tt.ObjectMeta.Name, tt.Spec.Cron, tt.Spec.FunctionReference.Name)
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
w.Flush()
|
||||
@@ -374,7 +374,7 @@ func ShowAppliedKubeWatchers(ws []fv1.KubernetesWatchTrigger) {
|
||||
|
||||
for _, wa := range ws {
|
||||
fmt.Fprintf(w, "%v\t%v\t%v\t%v\t%v\n",
|
||||
wa.Metadata.Name, wa.Spec.Namespace, wa.Spec.Type, wa.Spec.LabelSelector, wa.Spec.FunctionReference.Name)
|
||||
wa.ObjectMeta.Name, wa.Spec.Namespace, wa.Spec.Type, wa.Spec.LabelSelector, wa.Spec.FunctionReference.Name)
|
||||
}
|
||||
fmt.Fprintf(w, "\n")
|
||||
w.Flush()
|
||||
|
||||
@@ -182,43 +182,43 @@ func SpecSave(resource interface{}, specFile string) error {
|
||||
case fv1.Package:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "Package"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.Function:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "Function"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.Environment:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "Environment"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.HTTPTrigger:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "HTTPTrigger"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.KubernetesWatchTrigger:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "KubernetesWatchTrigger"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.MessageQueueTrigger:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "MessageQueueTrigger"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
case fv1.TimeTrigger:
|
||||
typedres.TypeMeta.APIVersion = fv1.CRD_VERSION
|
||||
typedres.TypeMeta.Kind = "TimeTrigger"
|
||||
meta = typedres.Metadata
|
||||
meta = typedres.ObjectMeta
|
||||
kind = typedres.TypeMeta.Kind
|
||||
data, err = yaml.Marshal(typedres)
|
||||
default:
|
||||
@@ -297,7 +297,7 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
// index packages, check outgoing refs, mark archives that are referenced
|
||||
packages := make(map[string]bool)
|
||||
for _, p := range fr.Packages {
|
||||
packages[MapKey(&p.Metadata)] = false
|
||||
packages[MapKey(&p.ObjectMeta)] = false
|
||||
|
||||
as := map[string]string{
|
||||
"source": p.Spec.Source.URL,
|
||||
@@ -311,8 +311,8 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
if _, ok := archives[aname]; !ok {
|
||||
result = multierror.Append(result, fmt.Errorf(
|
||||
"%v: package '%v' references unknown %v archive '%v%v'",
|
||||
fr.SourceMap.Locations["Package"][p.Metadata.Namespace][p.Metadata.Name],
|
||||
p.Metadata.Name,
|
||||
fr.SourceMap.Locations["Package"][p.ObjectMeta.Namespace][p.ObjectMeta.Name],
|
||||
p.ObjectMeta.Name,
|
||||
archiveType,
|
||||
ARCHIVE_URL_PREFIX,
|
||||
aname))
|
||||
@@ -339,7 +339,7 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
// index functions, check function package refs, mark referenced packages
|
||||
functions := make(map[string]bool)
|
||||
for _, f := range fr.Functions {
|
||||
functions[MapKey(&f.Metadata)] = false
|
||||
functions[MapKey(&f.ObjectMeta)] = false
|
||||
|
||||
pkgMeta := &metav1.ObjectMeta{
|
||||
Name: f.Spec.Package.PackageRef.Name,
|
||||
@@ -354,21 +354,21 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
|
||||
// check that the package referenced by each function is in the same ns as the function
|
||||
packageRefInFuncNs := func(f *fv1.Function) bool {
|
||||
return f.Spec.Package.PackageRef.Namespace == f.Metadata.Namespace
|
||||
return f.Spec.Package.PackageRef.Namespace == f.ObjectMeta.Namespace
|
||||
}
|
||||
|
||||
if !packageRefInFuncNs(&f) {
|
||||
result = multierror.Append(result, fmt.Errorf(
|
||||
"%v: function '%v' references a package outside of its namespace %v/%v",
|
||||
fr.SourceMap.Locations["Function"][f.Metadata.Namespace][f.Metadata.Name],
|
||||
f.Metadata.Name,
|
||||
fr.SourceMap.Locations["Function"][f.ObjectMeta.Namespace][f.ObjectMeta.Name],
|
||||
f.ObjectMeta.Name,
|
||||
f.Spec.Package.PackageRef.Namespace,
|
||||
f.Spec.Package.PackageRef.Name))
|
||||
} else if !packageRefExists() {
|
||||
result = multierror.Append(result, fmt.Errorf(
|
||||
"%v: function '%v' references unknown package %v/%v",
|
||||
fr.SourceMap.Locations["Function"][f.Metadata.Namespace][f.Metadata.Name],
|
||||
f.Metadata.Name,
|
||||
fr.SourceMap.Locations["Function"][f.ObjectMeta.Namespace][f.ObjectMeta.Name],
|
||||
f.ObjectMeta.Name,
|
||||
pkgMeta.Namespace,
|
||||
pkgMeta.Name))
|
||||
} else {
|
||||
@@ -415,7 +415,7 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
|
||||
// check function refs from triggers
|
||||
for _, t := range fr.HttpTriggers {
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.Metadata, t.Spec.FunctionReference)
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.ObjectMeta, t.Spec.FunctionReference)
|
||||
if err != nil {
|
||||
result = multierror.Append(result, err)
|
||||
}
|
||||
@@ -426,21 +426,21 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
result = multierror.Append(result, t.Validate())
|
||||
}
|
||||
for _, t := range fr.KubernetesWatchTriggers {
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.Metadata, t.Spec.FunctionReference)
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.ObjectMeta, t.Spec.FunctionReference)
|
||||
if err != nil {
|
||||
result = multierror.Append(result, err)
|
||||
}
|
||||
result = multierror.Append(result, t.Validate())
|
||||
}
|
||||
for _, t := range fr.TimeTriggers {
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.Metadata, t.Spec.FunctionReference)
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.ObjectMeta, t.Spec.FunctionReference)
|
||||
if err != nil {
|
||||
result = multierror.Append(result, err)
|
||||
}
|
||||
result = multierror.Append(result, t.Validate())
|
||||
}
|
||||
for _, t := range fr.MessageQueueTriggers {
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.Metadata, t.Spec.FunctionReference)
|
||||
err := fr.validateFunctionReference(functions, t.Kind, &t.ObjectMeta, t.Spec.FunctionReference)
|
||||
if err != nil {
|
||||
result = multierror.Append(result, err)
|
||||
}
|
||||
@@ -453,7 +453,7 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
// Index envs, warn on functions referencing an environment for which spes does not exist
|
||||
environments := make(map[string]struct{})
|
||||
for _, e := range fr.Environments {
|
||||
environments[fmt.Sprintf("%s:%s", e.Metadata.Name, e.Metadata.Namespace)] = struct{}{}
|
||||
environments[fmt.Sprintf("%s:%s", e.ObjectMeta.Name, e.ObjectMeta.Namespace)] = struct{}{}
|
||||
if ((e.Spec.Runtime.Container != nil) && (e.Spec.Runtime.PodSpec != nil)) || ((e.Spec.Builder.Container != nil) && (e.Spec.Builder.PodSpec != nil)) {
|
||||
warnings = append(warnings, fmt.Sprintf("You have provided both - container spec and pod spec and while merging the pod spec will take precedence."))
|
||||
}
|
||||
@@ -466,7 +466,7 @@ func (fr *FissionResources) Validate(input cli.Input) ([]string, error) {
|
||||
|
||||
for _, f := range fr.Functions {
|
||||
if _, ok := environments[fmt.Sprintf("%s:%s", f.Spec.Environment.Name, f.Spec.Environment.Namespace)]; !ok {
|
||||
warnings = append(warnings, fmt.Sprintf("Environment %s is referenced in function %s but not declared in specs", f.Spec.Environment.Name, f.Metadata.Name))
|
||||
warnings = append(warnings, fmt.Sprintf("Environment %s is referenced in function %s but not declared in specs", f.Spec.Environment.Name, f.ObjectMeta.Name))
|
||||
}
|
||||
strategy := f.Spec.InvokeStrategy.ExecutionStrategy
|
||||
if strategy.ExecutorType == fv1.ExecutorTypeNewdeploy && strategy.SpecializationTimeout < fv1.DefaultSpecializationTimeOut {
|
||||
@@ -521,7 +521,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.Packages = append(fr.Packages, v)
|
||||
case "Function":
|
||||
var v fv1.Function
|
||||
@@ -529,7 +529,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.Functions = append(fr.Functions, v)
|
||||
case "Environment":
|
||||
var v fv1.Environment
|
||||
@@ -537,7 +537,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.Environments = append(fr.Environments, v)
|
||||
case "HTTPTrigger":
|
||||
var v fv1.HTTPTrigger
|
||||
@@ -551,7 +551,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
v.Spec.RelativeURL = fmt.Sprintf("/%s", v.Spec.RelativeURL)
|
||||
}
|
||||
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.HttpTriggers = append(fr.HttpTriggers, v)
|
||||
case "KubernetesWatchTrigger":
|
||||
var v fv1.KubernetesWatchTrigger
|
||||
@@ -559,7 +559,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.KubernetesWatchTriggers = append(fr.KubernetesWatchTriggers, v)
|
||||
case "TimeTrigger":
|
||||
var v fv1.TimeTrigger
|
||||
@@ -567,7 +567,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.TimeTriggers = append(fr.TimeTriggers, v)
|
||||
case "MessageQueueTrigger":
|
||||
var v fv1.MessageQueueTrigger
|
||||
@@ -575,7 +575,7 @@ func (fr *FissionResources) ParseYaml(b []byte, loc *Location) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to parse %v in %v", tm.Kind, loc))
|
||||
}
|
||||
m = &v.Metadata
|
||||
m = &v.ObjectMeta
|
||||
fr.MessageQueueTriggers = append(fr.MessageQueueTriggers, v)
|
||||
|
||||
// The following are not CRDs
|
||||
@@ -637,7 +637,7 @@ func (fr *FissionResources) SpecExists(resource interface{}, compareMetadata boo
|
||||
return nil
|
||||
case *fv1.Package:
|
||||
for _, p := range fr.Packages {
|
||||
if compareMetadata && !reflect.DeepEqual(p.Metadata, typedres.Metadata) {
|
||||
if compareMetadata && !reflect.DeepEqual(p.ObjectMeta, typedres.ObjectMeta) {
|
||||
continue
|
||||
}
|
||||
if compareSpec && !reflect.DeepEqual(p.Spec, typedres.Spec) {
|
||||
@@ -663,50 +663,50 @@ func (fr *FissionResources) ExistsInSpecs(resource interface{}) (bool, error) {
|
||||
}
|
||||
case fv1.Package:
|
||||
for _, obj := range fr.Packages {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.Function:
|
||||
for _, obj := range fr.Functions {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.Environment:
|
||||
for _, obj := range fr.Environments {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.HTTPTrigger:
|
||||
for _, obj := range fr.HttpTriggers {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.KubernetesWatchTrigger:
|
||||
for _, obj := range fr.KubernetesWatchTriggers {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.MessageQueueTrigger:
|
||||
for _, obj := range fr.MessageQueueTriggers {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
case fv1.TimeTrigger:
|
||||
for _, obj := range fr.TimeTriggers {
|
||||
if obj.Metadata.Name == typedres.Metadata.Name &&
|
||||
obj.Metadata.Namespace == typedres.Metadata.Namespace {
|
||||
if obj.ObjectMeta.Name == typedres.ObjectMeta.Name &&
|
||||
obj.ObjectMeta.Namespace == typedres.ObjectMeta.Namespace {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user