Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ To learn more about active deprecations, we recommend checking [GitHub Discussio
### Improvements

- **General**: Correct error message when awsSecretAccessKey is missing in credential-based authentication ([#7265](https://github.com/kedacore/keda/pull/7265))
- **General**: Optimize resolvedEnv parsing to reduce Kubernetes API calls ([#YOUR_PR_NUMBER](https://github.com/kedacore/keda/pull/7374))
- **General**: Raw metrics stream - include trigger activity status in response ([#7369](https://github.com/kedacore/keda/issues/7369))
- **AWS CloudWatch Scaler**: Add cross-account observability support ([#7189](https://github.com/kedacore/keda/issues/7189))
- **Dynamodb Scaler**: Add FilterExpression support ([#7102](https://github.com/kedacore/keda/issues/7102))
Expand Down
17 changes: 10 additions & 7 deletions pkg/scaling/scalers_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,22 @@ import (
func (h *scaleHandler) buildScalers(ctx context.Context, withTriggers *kedav1alpha1.WithTriggers, podTemplateSpec *corev1.PodTemplateSpec, containerName string, asMetricSource bool) ([]cache.ScalerBuilder, error) {
logger := log.WithValues("type", withTriggers.Kind, "namespace", withTriggers.Namespace, "name", withTriggers.Name)
var err error
resolvedEnv := make(map[string]string)
var resolvedEnv map[string]string

// Resolve container environment once at the beginning, shared by all triggers
if podTemplateSpec != nil {
resolvedEnv, err = resolver.ResolveContainerEnv(ctx, h.client, logger, &podTemplateSpec.Spec, containerName, withTriggers.Namespace, h.authClientSet.SecretLister)
if err != nil {
return nil, fmt.Errorf("error resolving secrets for ScaleTarget: %w", err)
}
}

result := make([]cache.ScalerBuilder, 0, len(withTriggers.Spec.Triggers))

for i, t := range withTriggers.Spec.Triggers {
triggerIndex, trigger := i, t

factory := func() (scalers.Scaler, *scalersconfig.ScalerConfig, error) {
if podTemplateSpec != nil {
resolvedEnv, err = resolver.ResolveContainerEnv(ctx, h.client, logger, &podTemplateSpec.Spec, containerName, withTriggers.Namespace, h.authClientSet.SecretLister)
if err != nil {
return nil, nil, fmt.Errorf("error resolving secrets for ScaleTarget: %w", err)
}
}
config := &scalersconfig.ScalerConfig{
ScalableObjectName: withTriggers.Name,
ScalableObjectNamespace: withTriggers.Namespace,
Expand Down
Loading