Skip to content

Commit

Permalink
resolve secrets from *FromEnv only (kedacore#1131)
Browse files Browse the repository at this point in the history
Signed-off-by: Ahmed ElSayed <ahmels@microsoft.com>
  • Loading branch information
ahmelsayed authored Sep 10, 2020
1 parent 62c4a4a commit 7f327d4
Show file tree
Hide file tree
Showing 17 changed files with 32 additions and 57 deletions.
4 changes: 1 addition & 3 deletions pkg/scalers/aws_iam_authorization.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ func getAwsAuthorization(authParams, metadata, resolvedEnv map[string]string) (a
return meta, fmt.Errorf("awsAccessKeyID not found")
}

if metadata["awsSecretAccessKey"] != "" {
meta.awsSecretAccessKey = metadata["awsSecretAccessKey"]
} else if metadata["awsSecretAccessKeyFromEnv"] != "" {
if metadata["awsSecretAccessKeyFromEnv"] != "" {
meta.awsSecretAccessKey = resolvedEnv[metadata["awsSecretAccessKeyFromEnv"]]
}

Expand Down
2 changes: 0 additions & 2 deletions pkg/scalers/azure_blob_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ func parseAzureBlobMetadata(metadata, resolvedEnv, authParams map[string]string,
// of the scaler or in a TriggerAuthentication object
if authParams["connection"] != "" {
meta.connection = authParams["connection"]
} else if metadata["connection"] != "" {
meta.connection = metadata["connection"]
} else if metadata["connectionFromEnv"] != "" {
meta.connection = resolvedEnv[metadata["connectionFromEnv"]]
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/scalers/azure_blob_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ var testAzBlobMetadata = []parseAzBlobMetadataTestData{
// nothing passed
{map[string]string{}, true, testAzBlobResolvedEnv, map[string]string{}, ""},
// properly formed
{map[string]string{"connection": "CONNECTION", "blobContainerName": "sample", "blobCount": "5", "blobDelimiter": "/", "blobPrefix": "blobsubpath"}, false, testAzBlobResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "blobContainerName": "sample", "blobCount": "5", "blobDelimiter": "/", "blobPrefix": "blobsubpath"}, false, testAzBlobResolvedEnv, map[string]string{}, ""},
// Empty blobcontainerName
{map[string]string{"connection": "CONNECTION", "blobContainerName": ""}, true, testAzBlobResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "blobContainerName": ""}, true, testAzBlobResolvedEnv, map[string]string{}, ""},
// improperly formed blobCount
{map[string]string{"connection": "CONNECTION", "blobContainerName": "sample", "blobCount": "AA"}, true, testAzBlobResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "blobContainerName": "sample", "blobCount": "AA"}, true, testAzBlobResolvedEnv, map[string]string{}, ""},
// podIdentity = azure with account name
{map[string]string{"accountName": "sample_acc", "blobContainerName": "sample_container"}, false, testAzBlobResolvedEnv, map[string]string{}, "azure"},
// podIdentity = azure without account name
Expand Down
4 changes: 0 additions & 4 deletions pkg/scalers/azure_eventhub_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ func parseAzureEventHubMetadata(metadata, resolvedEnv, authParams map[string]str

if authParams["storageConnection"] != "" {
meta.eventHubInfo.StorageConnection = authParams["storageConnection"]
} else if metadata["storageConnection"] != "" {
meta.eventHubInfo.StorageConnection = metadata["storageConnection"]
} else if metadata["storageConnectionFromEnv"] != "" {
meta.eventHubInfo.StorageConnection = resolvedEnv[metadata["storageConnectionFromEnv"]]
}
Expand All @@ -87,8 +85,6 @@ func parseAzureEventHubMetadata(metadata, resolvedEnv, authParams map[string]str

if authParams["connection"] != "" {
meta.eventHubInfo.EventHubConnection = authParams["connection"]
} else if metadata["connection"] != "" {
meta.eventHubInfo.EventHubConnection = metadata["connection"]
} else if metadata["connectionFromEnv"] != "" {
meta.eventHubInfo.EventHubConnection = resolvedEnv[metadata["connectionFromEnv"]]
}
Expand Down
2 changes: 0 additions & 2 deletions pkg/scalers/azure_monitor_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,6 @@ func parseAzureMonitorMetadata(metadata, resolvedEnv, authParams map[string]stri

if authParams["activeDirectoryClientPassword"] != "" {
meta.azureMonitorInfo.ClientPassword = authParams["activeDirectoryClientPassword"]
} else if metadata["activeDirectoryClientPassword"] != "" {
meta.azureMonitorInfo.ClientPassword = metadata["activeDirectoryClientPassword"]
} else if metadata["activeDirectoryClientPasswordFromEnv"] != "" {
meta.azureMonitorInfo.ClientPassword = resolvedEnv[metadata["activeDirectoryClientPasswordFromEnv"]]
}
Expand Down
14 changes: 7 additions & 7 deletions pkg/scalers/azure_monitor_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ var testParseAzMonitorMetadata = []parseAzMonitorMetadataTestData{
// nothing passed
{map[string]string{}, true, map[string]string{}, map[string]string{}, ""},
// properly formed
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
// no optional parameters
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
// incorrectly formatted resourceURI
{map[string]string{"resourceURI": "bad/format", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "bad/format", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// improperly formatted aggregationInterval
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:1", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:1", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing resourceURI
{map[string]string{"tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing tenantId
{map[string]string{"resourceURI": "test/resource/uri", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing subscriptionId
Expand All @@ -44,13 +44,13 @@ var testParseAzMonitorMetadata = []parseAzMonitorMetadataTestData{
// missing metricAggregationType
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// filter included
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricFilter": "namespace eq 'default'", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricFilter": "namespace eq 'default'", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD", "targetValue": "5"}, false, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing activeDirectoryClientId
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientPassword": "CLIENT_PASSWORD", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing activeDirectoryClientPassword
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "targetValue": "5"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// missing targetValue
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPassword": "CLIENT_PASSWORD"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "activeDirectoryClientId": "CLIENT_ID", "activeDirectoryClientPasswordFromEnv": "CLIENT_PASSWORD"}, true, testAzMonitorResolvedEnv, map[string]string{}, ""},
// connection from authParams
{map[string]string{"resourceURI": "test/resource/uri", "tenantId": "123", "subscriptionId": "456", "resourceGroupName": "test", "metricName": "metric", "metricAggregationInterval": "0:15:0", "metricAggregationType": "Average", "targetValue": "5"}, false, map[string]string{}, map[string]string{"activeDirectoryClientId": "zzz", "activeDirectoryClientPassword": "password"}, ""},
// connection with podIdentity
Expand Down
2 changes: 0 additions & 2 deletions pkg/scalers/azure_queue_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,6 @@ func parseAzureQueueMetadata(metadata, resolvedEnv, authParams map[string]string
if authParams["connection"] != "" {
// Found the connection in a parameter from TriggerAuthentication
meta.connection = authParams["connection"]
} else if metadata["connection"] != "" {
meta.connection = metadata["connection"]
} else if metadata["connectionFromEnv"] != "" {
meta.connection = resolvedEnv[metadata["connectionFromEnv"]]
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/scalers/azure_queue_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ var testAzQueueMetadata = []parseAzQueueMetadataTestData{
// nothing passed
{map[string]string{}, true, testAzQueueResolvedEnv, map[string]string{}, ""},
// properly formed
{map[string]string{"connection": "CONNECTION", "queueName": "sample", "queueLength": "5"}, false, testAzQueueResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "queueName": "sample", "queueLength": "5"}, false, testAzQueueResolvedEnv, map[string]string{}, ""},
// Empty queueName
{map[string]string{"connection": "CONNECTION", "queueName": ""}, true, testAzQueueResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "queueName": ""}, true, testAzQueueResolvedEnv, map[string]string{}, ""},
// improperly formed queueLength
{map[string]string{"connection": "CONNECTION", "queueName": "sample", "queueLength": "AA"}, true, testAzQueueResolvedEnv, map[string]string{}, ""},
{map[string]string{"connectionFromEnv": "CONNECTION", "queueName": "sample", "queueLength": "AA"}, true, testAzQueueResolvedEnv, map[string]string{}, ""},
// Deprecated: useAAdPodIdentity with account name
{map[string]string{"useAAdPodIdentity": "true", "accountName": "sample_acc", "queueName": "sample_queue"}, false, testAzQueueResolvedEnv, map[string]string{}, ""},
// Deprecated: useAAdPodIdentity without account name
Expand Down
2 changes: 0 additions & 2 deletions pkg/scalers/azure_servicebus_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,6 @@ func parseAzureServiceBusMetadata(resolvedEnv, metadata, authParams map[string]s
// get servicebus connection string
if authParams["connection"] != "" {
meta.connection = authParams["connection"]
} else if metadata["connection"] != "" {
meta.connection = metadata["connection"]
} else if metadata["connectionFromEnv"] != "" {
meta.connection = resolvedEnv[metadata["connectionFromEnv"]]
}
Expand Down
12 changes: 6 additions & 6 deletions pkg/scalers/azure_servicebus_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,17 @@ var sampleResolvedEnv = map[string]string{
var parseServiceBusMetadataDataset = []parseServiceBusMetadataTestData{
{map[string]string{}, true, none, map[string]string{}, ""},
// properly formed queue
{map[string]string{"queueName": queueName, "connection": connectionSetting}, false, queue, map[string]string{}, ""},
{map[string]string{"queueName": queueName, "connectionFromEnv": connectionSetting}, false, queue, map[string]string{}, ""},
// properly formed topic & subscription
{map[string]string{"topicName": topicName, "subscriptionName": subscriptionName, "connection": connectionSetting}, false, subscription, map[string]string{}, ""},
{map[string]string{"topicName": topicName, "subscriptionName": subscriptionName, "connectionFromEnv": connectionSetting}, false, subscription, map[string]string{}, ""},
// queue and topic specified
{map[string]string{"queueName": queueName, "topicName": topicName, "connection": connectionSetting}, true, none, map[string]string{}, ""},
{map[string]string{"queueName": queueName, "topicName": topicName, "connectionFromEnv": connectionSetting}, true, none, map[string]string{}, ""},
// queue and subscription specified
{map[string]string{"queueName": queueName, "subscriptionName": subscriptionName, "connection": connectionSetting}, true, none, map[string]string{}, ""},
{map[string]string{"queueName": queueName, "subscriptionName": subscriptionName, "connectionFromEnv": connectionSetting}, true, none, map[string]string{}, ""},
// topic but no subscription specified
{map[string]string{"topicName": topicName, "connection": connectionSetting}, true, none, map[string]string{}, ""},
{map[string]string{"topicName": topicName, "connectionFromEnv": connectionSetting}, true, none, map[string]string{}, ""},
// subscription but no topic specified
{map[string]string{"subscriptionName": subscriptionName, "connection": connectionSetting}, true, none, map[string]string{}, ""},
{map[string]string{"subscriptionName": subscriptionName, "connectionFromEnv": connectionSetting}, true, none, map[string]string{}, ""},
// connection not set
{map[string]string{"queueName": queueName}, true, queue, map[string]string{}, ""},
// connection set in auth params
Expand Down
4 changes: 1 addition & 3 deletions pkg/scalers/gcp_pub_sub_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,7 @@ func parsePubSubMetadata(metadata, resolvedEnv map[string]string) (*pubsubMetada
return nil, fmt.Errorf("no subscription name given")
}

if metadata["credentials"] != "" {
meta.credentials = metadata["credentials"]
} else if metadata["credentialsFromEnv"] != "" {
if metadata["credentialsFromEnv"] != "" {
meta.credentials = resolvedEnv[metadata["credentialsFromEnv"]]
}

Expand Down
8 changes: 4 additions & 4 deletions pkg/scalers/gcp_pubsub_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ type gcpPubSubMetricIdentifier struct {
var testPubSubMetadata = []parsePubSubMetadataTestData{
{map[string]string{}, true},
// all properly formed
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "7", "credentials": "SAMPLE_CREDS"}, false},
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "7", "credentialsFromEnv": "SAMPLE_CREDS"}, false},
// missing subscriptionName
{map[string]string{"subscriptionName": "", "subscriptionSize": "7", "credentials": "SAMPLE_CREDS"}, true},
{map[string]string{"subscriptionName": "", "subscriptionSize": "7", "credentialsFromEnv": "SAMPLE_CREDS"}, true},
// missing credentials
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "7", "credentials": ""}, true},
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "7", "credentialsFromEnv": ""}, true},
// incorrect credentials
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "7", "credentialsFromEnv": "WRONG_CREDS"}, true},
// malformed subscriptionSize
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "AA", "credentials": "SAMPLE_CREDS"}, true},
{map[string]string{"subscriptionName": "mysubscription", "subscriptionSize": "AA", "credentialsFromEnv": "SAMPLE_CREDS"}, true},
}

var gcpPubSubMetricIdentifiers = []gcpPubSubMetricIdentifier{
Expand Down
4 changes: 0 additions & 4 deletions pkg/scalers/mysql_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ func parseMySQLMetadata(resolvedEnv, metadata, authParams map[string]string) (*m

if authParams["connectionString"] != "" {
meta.connectionString = authParams["connectionString"]
} else if metadata["connectionString"] != "" {
meta.connectionString = metadata["connectionString"]
} else if metadata["connectionStringFromEnv"] != "" {
meta.connectionString = resolvedEnv[metadata["connectionStringFromEnv"]]
} else {
Expand Down Expand Up @@ -105,8 +103,6 @@ func parseMySQLMetadata(resolvedEnv, metadata, authParams map[string]string) (*m

if authParams["password"] != "" {
meta.password = authParams["password"]
} else if metadata["password"] != "" {
meta.password = metadata["password"]
} else if metadata["passwordFromEnv"] != "" {
meta.password = resolvedEnv[metadata["passwordFromEnv"]]
}
Expand Down
Loading

0 comments on commit 7f327d4

Please sign in to comment.