Skip to content

Commit b461aca

Browse files
committed
Allow users to specify instascale configmap namespace
Signed-off-by: Anish Asthana <[email protected]>
1 parent 1651108 commit b461aca

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

controllers/appwrapper_controller.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ package controllers
1919
import (
2020
"context"
2121
"fmt"
22-
"strconv"
23-
2422
"os"
23+
"strconv"
2524
"strings"
2625
"time"
2726

@@ -49,7 +48,8 @@ import (
4948
// AppWrapperReconciler reconciles a AppWrapper object
5049
type AppWrapperReconciler struct {
5150
client.Client
52-
Scheme *runtime.Scheme
51+
Scheme *runtime.Scheme
52+
ConfigmapNamespace string
5353
}
5454

5555
//var nodeCache []string
@@ -118,17 +118,21 @@ func (r *AppWrapperReconciler) Reconcile(ctx context.Context, req ctrl.Request)
118118
informer := factory.Machine().V1beta1().MachineSets().Informer()
119119
msLister = factory.Machine().V1beta1().MachineSets().Lister()
120120
machineLister = factory.Machine().V1beta1().Machines().Lister()
121-
nodesTobeadded, err := kubeClient.CoreV1().ConfigMaps("kube-system").Get(ctx, "instascale-config", metav1.GetOptions{})
121+
instascaleConfigs, err := kubeClient.CoreV1().ConfigMaps(r.ConfigmapNamespace).Get(ctx, "instascale-config", metav1.GetOptions{})
122122
if err != nil {
123-
klog.Infof("Config map named instascale-config is not available in namespace kube-system")
123+
klog.Infof("Config map named instascale-config is not available in namespace %v", r.ConfigmapNamespace)
124124
}
125-
for _, v := range nodesTobeadded.Data {
126-
if maxScaleNodesAllowed, err = strconv.Atoi(v); err != nil {
127-
klog.Infof("Error configuring value of configmap %v using value 3", maxScaleNodesAllowed)
128-
maxScaleNodesAllowed = 3
125+
126+
for key, value := range instascaleConfigs.Data {
127+
if key == "maxScaleoutAllowed" {
128+
if maxScaleNodesAllowed, err = strconv.Atoi(value); err != nil {
129+
klog.Infof("Error converting %v to int. Setting maxScaleNodesAllowed to 3", maxScaleNodesAllowed)
130+
maxScaleNodesAllowed = 3
131+
}
129132
}
130133
}
131-
klog.Infof("Got config map named: %v that configures max nodes in cluster to value %v", nodesTobeadded.Name, maxScaleNodesAllowed)
134+
klog.Infof("Got config map named: %v that configures max nodes in cluster to value %v", instascaleConfigs.Name, maxScaleNodesAllowed)
135+
132136
stopper := make(chan struct{})
133137
defer close(stopper)
134138
informer.AddEventHandler(cache.ResourceEventHandlerFuncs{

main.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import (
3333

3434
"github.com/project-codeflare/instascale/controllers"
3535
//+kubebuilder:scaffold:imports
36-
mygroupv1beta1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
36+
mcadv1beta1 "github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1"
3737
)
3838

3939
var (
@@ -45,15 +45,17 @@ func init() {
4545
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
4646

4747
//+kubebuilder:scaffold:scheme
48-
_ = mygroupv1beta1.AddToScheme(scheme)
48+
_ = mcadv1beta1.AddToScheme(scheme)
4949
}
5050

5151
func main() {
5252
var metricsAddr string
5353
var enableLeaderElection bool
5454
var probeAddr string
55+
var configmapNamespace string
5556
flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.")
5657
flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.")
58+
flag.StringVar(&configmapNamespace, "configmap-namespace", "kube-system", "The namespace containing the InstaScale configmap")
5759
flag.BoolVar(&enableLeaderElection, "leader-elect", false,
5860
"Enable leader election for controller manager. "+
5961
"Enabling this will ensure there is only one active controller manager.")
@@ -79,8 +81,9 @@ func main() {
7981
}
8082

8183
if err = (&controllers.AppWrapperReconciler{
82-
Client: mgr.GetClient(),
83-
Scheme: mgr.GetScheme(),
84+
Client: mgr.GetClient(),
85+
Scheme: mgr.GetScheme(),
86+
ConfigmapNamespace: configmapNamespace,
8487
}).SetupWithManager(mgr); err != nil {
8588
setupLog.Error(err, "unable to create controller", "controller", "AppWrapper")
8689
os.Exit(1)

0 commit comments

Comments
 (0)