Newer
Older
package instance
import (
"github.com/presslabs/controller-util/syncer"
"k8s.io/apimachinery/pkg/labels"
interfaces "k8s.libre.sh/interfaces"
)
type Component interface {
Meta
SetDefaults(i Instance)
GetObjects() map[int]Object
}
func GenComponentLabels(c Component) map[string]string {
labels := labels.Set{
"app.kubernetes.io/component": c.GetName(),
}
return labels
}
func NewSyncer(i Component, r interfaces.Reconcile, owner interfaces.Object) (syncers []syncer.Interface) {
mutators := i.GetObjects()
// labels := InstanceLabels(i)
for _, m := range mutators {
// m.SetLabels(labels)
// m.SetName(i.GetName())
// m.SetNamespace(i.GetNamespace())
syncers = append(syncers, NewObjectSyncer(m, owner, r))
}
return syncers
}
func InitComponent(i Instance, c Component) {
component := c.GetComponent()
SetObjectMeta(i, c)
if len(component) > 0 {
c.SetComponent(component)
}
// w.ObjectMeta.Labels["app.kubernetes.io/component"] = "app"
for _, o := range c.GetObjects() {
SetObjectMeta(c, o)
}
}