Skip to content

Commit 485ae32

Browse files
committed
Refactor BundleCreationMaxConcurrency in GitJob
1 parent 96109a2 commit 485ae32

File tree

4 files changed

+42
-48
lines changed

4 files changed

+42
-48
lines changed

internal/cmd/controller/gitops/operator.go

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
2424

2525
command "github.com/rancher/fleet/internal/cmd"
26-
fleetapply "github.com/rancher/fleet/internal/cmd/cli/apply"
2726
"github.com/rancher/fleet/internal/cmd/controller/gitops/reconciler"
2827
fcreconciler "github.com/rancher/fleet/internal/cmd/controller/reconciler"
2928
"github.com/rancher/fleet/internal/metrics"
@@ -139,27 +138,21 @@ func (g *GitOperator) Run(cmd *cobra.Command, args []string) error {
139138
workers = w
140139
}
141140

142-
bundleCreationMaxConcurrency, err := fleetapply.GetBundleCreationMaxConcurrency()
143-
if err != nil {
144-
setupLog.Error(err, "failed to parse FLEET_BUNDLE_CREATION_MAX_CONCURRENCY, using defaults", "env_var_name", fleetapply.BundleCreationMaxConcurrencyEnv)
145-
}
146-
147141
kh := ssh.KnownHosts{EnforceHostKeyChecks: !g.SkipHostKeyChecks}
148142

149143
gitJobReconciler := &reconciler.GitJobReconciler{
150-
Client: mgr.GetClient(),
151-
Scheme: mgr.GetScheme(),
152-
Image: g.Image,
153-
Scheduler: sched,
154-
Workers: workers,
155-
ShardID: g.ShardID,
156-
JobNodeSelector: g.ShardNodeSelector,
157-
GitFetcher: &git.Fetch{KnownHosts: kh},
158-
Clock: reconciler.RealClock{},
159-
Recorder: mgr.GetEventRecorderFor(fmt.Sprintf("fleet-gitops%s", shardIDSuffix)),
160-
SystemNamespace: namespace,
161-
KnownHosts: kh,
162-
BundleCreationMaxConcurrency: bundleCreationMaxConcurrency,
144+
Client: mgr.GetClient(),
145+
Scheme: mgr.GetScheme(),
146+
Image: g.Image,
147+
Scheduler: sched,
148+
Workers: workers,
149+
ShardID: g.ShardID,
150+
JobNodeSelector: g.ShardNodeSelector,
151+
GitFetcher: &git.Fetch{KnownHosts: kh},
152+
Clock: reconciler.RealClock{},
153+
Recorder: mgr.GetEventRecorderFor(fmt.Sprintf("fleet-gitops%s", shardIDSuffix)),
154+
SystemNamespace: namespace,
155+
KnownHosts: kh,
163156
}
164157

165158
statusReconciler := &reconciler.StatusReconciler{

internal/cmd/controller/gitops/reconciler/gitjob.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ func (r *GitJobReconciler) newJobSpec(ctx context.Context, gitrepo *v1alpha1.Git
413413

414414
saName := names.SafeConcatName("git", gitrepo.Name)
415415
logger := log.FromContext(ctx)
416-
args, envs := argsAndEnvs(gitrepo, logger, CACertsFilePathOverride, r.KnownHosts, drivenScanSeparator, helmInsecure, helmBasicHTTP, r.BundleCreationMaxConcurrency)
416+
args, envs := argsAndEnvs(gitrepo, logger, CACertsFilePathOverride, r.KnownHosts, drivenScanSeparator, helmInsecure, helmBasicHTTP)
417417

418418
zero := int32(0)
419419

@@ -603,6 +603,16 @@ func (r *GitJobReconciler) newGitCloner(
603603
}, nil
604604
}
605605

606+
// readIntEnvVar reads an integer from an environment variable using the provided getter function.
607+
// If an error occurs, it logs the error and returns the default value.
608+
func readIntEnvVar(logger logr.Logger, getter func() (int, error), envVarName string) int {
609+
val, err := getter()
610+
if err != nil {
611+
logger.Error(err, "failed parsing env variable, using defaults", "env_var_name", envVarName)
612+
}
613+
return val
614+
}
615+
606616
func argsAndEnvs(
607617
gitrepo *v1alpha1.GitRepo,
608618
logger logr.Logger,
@@ -611,7 +621,6 @@ func argsAndEnvs(
611621
drivenScanSeparator string,
612622
helmInsecureSkipTLS bool,
613623
helmBasicHTTP bool,
614-
bundleCreationMaxConcurrency int,
615624
) ([]string, []corev1.EnvVar) {
616625
args := []string{
617626
"fleet",
@@ -654,10 +663,9 @@ func argsAndEnvs(
654663
}
655664
}
656665

657-
fleetApplyRetries, err := fleetapply.GetOnConflictRetries()
658-
if err != nil {
659-
logger.Error(err, "failed parsing env variable, using defaults", "env_var_name", fleetapply.FleetApplyConflictRetriesEnv)
660-
}
666+
fleetApplyRetries := readIntEnvVar(logger, fleetapply.GetOnConflictRetries, fleetapply.FleetApplyConflictRetriesEnv)
667+
bundleCreationMaxConcurrency := readIntEnvVar(logger, fleetapply.GetBundleCreationMaxConcurrency, fleetapply.BundleCreationMaxConcurrencyEnv)
668+
661669
env := []corev1.EnvVar{
662670
{
663671
Name: "HOME",
@@ -676,7 +684,7 @@ func argsAndEnvs(
676684
Value: strconv.Itoa(fleetApplyRetries),
677685
},
678686
{
679-
Name: "FLEET_BUNDLE_CREATION_MAX_CONCURRENCY",
687+
Name: fleetapply.BundleCreationMaxConcurrencyEnv,
680688
Value: strconv.Itoa(bundleCreationMaxConcurrency),
681689
},
682690
}

internal/cmd/controller/gitops/reconciler/gitjob_controller.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,17 @@ type KnownHostsGetter interface {
115115
// GitJobReconciler reconciles a GitRepo resource to create a git cloning k8s job
116116
type GitJobReconciler struct {
117117
client.Client
118-
Scheme *runtime.Scheme
119-
Image string
120-
Scheduler quartz.Scheduler
121-
Workers int
122-
ShardID string
123-
JobNodeSelector string
124-
GitFetcher GitFetcher
125-
Clock TimeGetter
126-
Recorder record.EventRecorder
127-
SystemNamespace string
128-
KnownHosts KnownHostsGetter
129-
BundleCreationMaxConcurrency int
118+
Scheme *runtime.Scheme
119+
Image string
120+
Scheduler quartz.Scheduler
121+
Workers int
122+
ShardID string
123+
JobNodeSelector string
124+
GitFetcher GitFetcher
125+
Clock TimeGetter
126+
Recorder record.EventRecorder
127+
SystemNamespace string
128+
KnownHosts KnownHostsGetter
130129
}
131130

132131
func (r *GitJobReconciler) SetupWithManager(mgr ctrl.Manager) error {

internal/cmd/controller/gitops/reconciler/gitjob_test.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2134,17 +2134,11 @@ func TestGenerateJob_EnvVars(t *testing.T) {
21342134
}
21352135
}
21362136

2137-
bundleCreationMaxConcurrency, err := fleetapply.GetBundleCreationMaxConcurrency()
2138-
if err != nil {
2139-
t.Logf("failed to parse FLEET_BUNDLE_CREATION_MAX_CONCURRENCY, using defaults")
2140-
}
2141-
21422137
r := GitJobReconciler{
2143-
Client: getFakeClient([]corev1.Toleration{}),
2144-
Image: "test",
2145-
Clock: RealClock{},
2146-
SystemNamespace: config.DefaultNamespace,
2147-
BundleCreationMaxConcurrency: bundleCreationMaxConcurrency,
2138+
Client: getFakeClient([]corev1.Toleration{}),
2139+
Image: "test",
2140+
Clock: RealClock{},
2141+
SystemNamespace: config.DefaultNamespace,
21482142
KnownHosts: mockKnownHostsGetter{
21492143
strict: test.strictSSHHostKeyChecks,
21502144
},

0 commit comments

Comments
 (0)