Skip to content

Commit 2ae2670

Browse files
committed
[cozystack-operator] Add Package and PackageSource reconcilers
Signed-off-by: Andrei Kvapil <[email protected]>
1 parent 2990f05 commit 2ae2670

4 files changed

Lines changed: 1453 additions & 0 deletions

File tree

‎api/v1alpha1/package_types.go‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,15 @@ type PackageStatus struct {
8686
// Conditions represents the latest available observations of a Package's state
8787
// +optional
8888
Conditions []metav1.Condition `json:"conditions,omitempty"`
89+
90+
// Dependencies tracks the readiness status of each dependency
91+
// Key is the dependency package name, value indicates if the dependency is ready
92+
// +optional
93+
Dependencies map[string]DependencyStatus `json:"dependencies,omitempty"`
94+
}
95+
96+
// DependencyStatus represents the readiness status of a dependency
97+
type DependencyStatus struct {
98+
// Ready indicates whether the dependency is ready
99+
Ready bool `json:"ready"`
89100
}

‎cmd/cozystack-operator/main.go‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import (
3131

3232
cozyv1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
3333
helmv2 "github.com/fluxcd/helm-controller/api/v2"
34+
sourcev1 "github.com/fluxcd/source-controller/api/v1"
35+
sourcewatcherv1beta1 "github.com/fluxcd/source-watcher/api/v2/v1beta1"
3436
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3537
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3638
"k8s.io/apimachinery/pkg/runtime"
@@ -45,6 +47,7 @@ import (
4547
"sigs.k8s.io/controller-runtime/pkg/webhook"
4648

4749
"github.com/cozystack/cozystack/internal/fluxinstall"
50+
"github.com/cozystack/cozystack/internal/operator"
4851
// +kubebuilder:scaffold:imports
4952
)
5053

@@ -58,6 +61,8 @@ func init() {
5861
utilruntime.Must(apiextensionsv1.AddToScheme(scheme))
5962
utilruntime.Must(cozyv1alpha1.AddToScheme(scheme))
6063
utilruntime.Must(helmv2.AddToScheme(scheme))
64+
utilruntime.Must(sourcev1.AddToScheme(scheme))
65+
utilruntime.Must(sourcewatcherv1beta1.AddToScheme(scheme))
6166
// +kubebuilder:scaffold:scheme
6267
}
6368

@@ -155,6 +160,24 @@ func main() {
155160
}
156161
}
157162

163+
// Setup PackageSource reconciler
164+
if err := (&operator.PackageSourceReconciler{
165+
Client: mgr.GetClient(),
166+
Scheme: mgr.GetScheme(),
167+
}).SetupWithManager(mgr); err != nil {
168+
setupLog.Error(err, "unable to create controller", "controller", "PackageSource")
169+
os.Exit(1)
170+
}
171+
172+
// Setup Package reconciler
173+
if err := (&operator.PackageReconciler{
174+
Client: mgr.GetClient(),
175+
Scheme: mgr.GetScheme(),
176+
}).SetupWithManager(mgr); err != nil {
177+
setupLog.Error(err, "unable to create controller", "controller", "Package")
178+
os.Exit(1)
179+
}
180+
158181
// +kubebuilder:scaffold:builder
159182

160183
if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {

0 commit comments

Comments
 (0)