mirror of
https://github.com/cozystack/cozystack.git
synced 2026-03-02 22:59:06 +00:00
Rename the CRD and all related types for better clarity: - CozystackResourceDefinition -> ApplicationDefinition - CozystackResourceDefinitionList -> ApplicationDefinitionList - CozystackResourceDefinitionSpec -> ApplicationDefinitionSpec - All related nested types updated accordingly Updated components: - API types and generated deepcopy code - Controllers and reconcilers - Dashboard, lineagecontrollerwebhook, crdmem packages - CRD YAML definition and Helm chart - All 25 cozyrds YAML manifests - Migration scripts and documentation Added migration 23 to remove old cozystack-resource-definition-crd HelmRelease. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package lineagecontrollerwebhook
|
|
|
|
import (
|
|
"context"
|
|
|
|
cozyv1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
|
|
ctrl "sigs.k8s.io/controller-runtime"
|
|
"sigs.k8s.io/controller-runtime/pkg/log"
|
|
)
|
|
|
|
// +kubebuilder:rbac:groups=cozystack.io,resources=applicationdefinitions,verbs=list;watch;get
|
|
|
|
func (c *LineageControllerWebhook) SetupWithManagerAsController(mgr ctrl.Manager) error {
|
|
return ctrl.NewControllerManagedBy(mgr).
|
|
For(&cozyv1alpha1.ApplicationDefinition{}).
|
|
Complete(c)
|
|
}
|
|
|
|
func (c *LineageControllerWebhook) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
|
|
l := log.FromContext(ctx)
|
|
crds := &cozyv1alpha1.ApplicationDefinitionList{}
|
|
if err := c.List(ctx, crds); err != nil {
|
|
l.Error(err, "failed reading ApplicationDefinitions")
|
|
return ctrl.Result{}, err
|
|
}
|
|
cfg := &runtimeConfig{
|
|
appCRDMap: make(map[appRef]*cozyv1alpha1.ApplicationDefinition),
|
|
}
|
|
for _, crd := range crds.Items {
|
|
appRef := appRef{
|
|
"apps.cozystack.io",
|
|
crd.Spec.Application.Kind,
|
|
}
|
|
|
|
newRef := crd
|
|
if _, exists := cfg.appCRDMap[appRef]; exists {
|
|
l.Info("duplicate app mapping detected; ignoring subsequent entry", "key", appRef)
|
|
} else {
|
|
cfg.appCRDMap[appRef] = &newRef
|
|
}
|
|
}
|
|
c.config.Store(cfg)
|
|
return ctrl.Result{}, nil
|
|
}
|