Skip to content

Commit 547b227

Browse files
anishasthanaopenshift-merge-robot
authored andcommitted
Update InstaScale Deployment
Signed-off-by: Anish Asthana <anishasthana1@gmail.com>
1 parent a0d6507 commit 547b227

File tree

13 files changed

+39
-45
lines changed

13 files changed

+39
-45
lines changed

api/v1alpha1/instascale_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ type InstaScaleSpec struct {
3232
// +kubebuilder:default=15
3333
MaxScaleoutAllowed int `json:"maxScaleoutAllowed,omitempty"`
3434

35+
// useMachinePools determines whether InstaScale should use MachineSets or MachinePools for scaling
36+
// +kubebuilder:default=false
37+
UseMachinePools bool `json:"useMachinePools,omitempty"`
38+
3539
// controllerResources determines the container resources for the InstaScale controller deployment
3640
ControllerResources *v1.ResourceRequirements `json:"controllerResources,omitempty"`
3741
}

config/crd/bases/codeflare.codeflare.dev_instascales.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ spec:
9393
description: maxScaleoutAllowed determines the max number of machines
9494
that can be scaled up by InstaScale
9595
type: integer
96+
useMachinePools:
97+
default: false
98+
description: useMachinePools determines whether InstaScale should
99+
use MachineSets or MachinePools for scaling
100+
type: boolean
96101
type: object
97102
status:
98103
description: InstaScaleStatus defines the observed state of InstaScale
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
kind: ConfigMap
22
apiVersion: v1
33
metadata:
4-
name: instascale-{{.Name}}-config
4+
name: instascale-config
55
namespace: {{.Namespace}}
66
labels:
77
app: instascale-{{.Name}}
88
component: instascale
99
data:
1010
maxScaleoutAllowed: "{{.MaxScaleoutAllowed}}"
11+
useMachinePools: "{{.UseMachinePools}}"

config/internal/instascale/deployment.yaml.tmpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ spec:
1616
app: instascale-{{.Name}}
1717
spec:
1818
containers:
19-
- image: quay.io/project-codeflare/instascale-controller:v0.0.3
19+
- args:
20+
- "--configs-namespace={{.Namespace}}"
21+
image: quay.io/project-codeflare/instascale-controller:v0.0.3
2022
name: instascale
2123
resources: {{.ControllerResources}}
2224
serviceAccountName: instascale-{{.Name}}-sa

controllers/instascale.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package controllers
22

33
import (
4-
"context"
5-
64
codeflarev1alpha1 "github.com/project-codeflare/codeflare-operator/api/v1alpha1"
7-
ctrl "sigs.k8s.io/controller-runtime"
85
)
96

107
var instascaleTemplates = []string{
@@ -15,7 +12,7 @@ var instascaleTemplates = []string{
1512
"instascale/deployment.yaml.tmpl",
1613
}
1714

18-
func (r *InstaScaleReconciler) ReconcileInstaScale(ctx context.Context, instascale *codeflarev1alpha1.InstaScale, req ctrl.Request, params *InstaScaleParams) error {
15+
func (r *InstaScaleReconciler) ReconcileInstaScale(instascale *codeflarev1alpha1.InstaScale, params *InstaScaleParams) error {
1916

2017
for _, template := range instascaleTemplates {
2118
err := r.Apply(instascale, params, template)

controllers/instascale_controller.go

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ func (r *InstaScaleReconciler) Apply(owner mf.Owner, params *InstaScaleParams, t
7272
return err
7373
}
7474

75-
if err = tmplManifest.Apply(); err != nil {
76-
return err
77-
}
78-
return nil
75+
return tmplManifest.Apply()
7976
}
8077

8178
// TODO: Review node permissions, instascale should only require read
@@ -142,7 +139,7 @@ func (r *InstaScaleReconciler) Reconcile(ctx context.Context, req ctrl.Request)
142139
}
143140
} else {
144141
if controllerutil.ContainsFinalizer(instascaleCustomResource, finalizerName) {
145-
if err := r.cleanUpClusterResources(ctx, req, instascaleCustomResource, params); err != nil {
142+
if err := r.cleanUpClusterResources(params); err != nil {
146143
return ctrl.Result{}, err
147144
}
148145
controllerutil.RemoveFinalizer(instascaleCustomResource, finalizerName)
@@ -156,7 +153,7 @@ func (r *InstaScaleReconciler) Reconcile(ctx context.Context, req ctrl.Request)
156153
}
157154

158155
log.V(1).Info("ReconcileInstaScale called.")
159-
err = r.ReconcileInstaScale(ctx, instascaleCustomResource, req, params)
156+
err = r.ReconcileInstaScale(instascaleCustomResource, params)
160157
if err != nil {
161158
return ctrl.Result{}, err
162159
}
@@ -231,14 +228,11 @@ func (r *InstaScaleReconciler) DeleteResource(params *InstaScaleParams, template
231228
return err
232229
}
233230

234-
if err = tmplManifest.Delete(); err != nil {
235-
return err
236-
}
237-
return nil
231+
return tmplManifest.Delete()
238232
}
239233

240234
// cleanUpClusterResources will be responsible for deleting objects that do not have owner references set
241-
func (r *InstaScaleReconciler) cleanUpClusterResources(ctx context.Context, req ctrl.Request, instascale *codeflarev1alpha1.InstaScale, params *InstaScaleParams) error {
235+
func (r *InstaScaleReconciler) cleanUpClusterResources(params *InstaScaleParams) error {
242236
for _, template := range instascaleClusterScopedTemplates {
243237
err := r.DeleteResource(params, template)
244238
if err != nil {

controllers/instascale_params.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type InstaScaleParams struct {
1515
Owner mf.Owner
1616
EnableMonitoring bool
1717
MaxScaleoutAllowed int
18+
UseMachinePools bool
1819
ControllerResources ControllerResources
1920
}
2021
type ControllerResources struct {
@@ -34,6 +35,7 @@ func (p *InstaScaleParams) ExtractParams(instascale *instascalev1alpha1.InstaSca
3435
p.Owner = instascale
3536
p.EnableMonitoring = instascale.Spec.EnableMonitoring
3637
p.MaxScaleoutAllowed = instascale.Spec.MaxScaleoutAllowed
38+
p.UseMachinePools = instascale.Spec.UseMachinePools
3739
if instascale.Spec.ControllerResources == nil {
3840
p.ControllerResources = ControllerResources{
3941
v1.ResourceRequirements{

controllers/mcad_controller.go

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ func (r *MCADReconciler) Apply(owner mf.Owner, params *MCADParams, template stri
6767
return err
6868
}
6969

70-
if err = tmplManifest.Apply(); err != nil {
71-
return err
72-
}
73-
return nil
70+
return tmplManifest.Apply()
7471
}
7572

7673
func (r *MCADReconciler) ApplyWithoutOwner(params *MCADParams, template string, fns ...mf.Transformer) error {
@@ -84,11 +81,7 @@ func (r *MCADReconciler) ApplyWithoutOwner(params *MCADParams, template string,
8481
return err
8582
}
8683

87-
if err = tmplManifest.Apply(); err != nil {
88-
return err
89-
}
90-
91-
return nil
84+
return tmplManifest.Apply()
9285
}
9386

9487
func (r *MCADReconciler) DeleteResource(params *MCADParams, template string, fns ...mf.Transformer) error {
@@ -102,10 +95,7 @@ func (r *MCADReconciler) DeleteResource(params *MCADParams, template string, fns
10295
return err
10396
}
10497

105-
if err = tmplManifest.Delete(); err != nil {
106-
return err
107-
}
108-
return nil
98+
return tmplManifest.Delete()
10999
}
110100

111101
//+kubebuilder:rbac:groups=codeflare.codeflare.dev,resources=mcads,verbs=get;list;watch;create;update;patch;delete
@@ -174,7 +164,7 @@ func (r *MCADReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.
174164
}
175165
} else {
176166
if controllerutil.ContainsFinalizer(mcadCustomResource, finalizerName) {
177-
if err := r.cleanUpOwnerLessResources(ctx, req, mcadCustomResource, params); err != nil {
167+
if err := r.cleanUpOwnerLessResources(params); err != nil {
178168
return ctrl.Result{}, err
179169
}
180170
controllerutil.RemoveFinalizer(mcadCustomResource, finalizerName)
@@ -188,7 +178,7 @@ func (r *MCADReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.
188178
}
189179

190180
log.V(1).Info("ReconcileMCAD called.")
191-
err = r.ReconcileMCAD(ctx, mcadCustomResource, req, params)
181+
err = r.ReconcileMCAD(mcadCustomResource, params)
192182
if err != nil {
193183
return ctrl.Result{}, err
194184
}
@@ -254,10 +244,6 @@ func (r *MCADReconciler) SetupWithManager(mgr ctrl.Manager) error {
254244
}
255245

256246
// cleanUpClusterResources will be responsible for deleting objects that do not have owner references set
257-
func (r *MCADReconciler) cleanUpOwnerLessResources(ctx context.Context, req ctrl.Request, mcad *codeflarev1alpha1.MCAD, params *MCADParams) error {
258-
err := r.deleteOwnerLessObjects(params)
259-
if err != nil {
260-
return err
261-
}
262-
return nil
247+
func (r *MCADReconciler) cleanUpOwnerLessResources(params *MCADParams) error {
248+
return r.deleteOwnerLessObjects(params)
263249
}

controllers/multi_cluster_app_dispatcher.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package controllers
22

33
import (
4-
"context"
54
codeflarev1alpha1 "github.com/project-codeflare/codeflare-operator/api/v1alpha1"
6-
ctrl "sigs.k8s.io/controller-runtime"
75
)
86

97
var multiClusterAppDispatcherTemplates = []string{
@@ -25,7 +23,7 @@ var ownerLessmultiClusterAppDispatcherTemplates = []string{
2523
"mcad/clusterrolebinding_metrics-resource-reader.yaml.tmpl",
2624
}
2725

28-
func (r *MCADReconciler) ReconcileMCAD(ctx context.Context, mcad *codeflarev1alpha1.MCAD, req ctrl.Request, params *MCADParams) error {
26+
func (r *MCADReconciler) ReconcileMCAD(mcad *codeflarev1alpha1.MCAD, params *MCADParams) error {
2927

3028
for _, template := range multiClusterAppDispatcherTemplates {
3129
r.Log.Info("Applying " + template)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
kind: ConfigMap
22
apiVersion: v1
33
metadata:
4-
name: instascale-example-config
4+
name: instascale-config
55
namespace: default
66
labels:
77
app: instascale-example
88
component: instascale
99
data:
1010
maxScaleoutAllowed: '15'
11+
useMachinePools: 'false'

0 commit comments

Comments
 (0)