Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add core logic to support access token in postgres scaler #5589

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
6354167
add core logic to support access token in postgres scaler
Ferdinanddb Mar 11, 2024
b2855ec
minor fix
Ferdinanddb Mar 11, 2024
f3760a5
run make build to fmt code
Ferdinanddb Mar 11, 2024
bee72e1
make regexp password pattern global
Ferdinanddb Mar 13, 2024
de5b4ae
adapt to use placeholder for regexp
Ferdinanddb Mar 13, 2024
1a4e372
add missing authPodIdentity variable
Ferdinanddb Mar 13, 2024
fc778ca
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Mar 13, 2024
d3b0456
lint code using gci write... command
Ferdinanddb Mar 13, 2024
1885608
lint import + add 2 unite tests
Ferdinanddb Mar 14, 2024
ce1c2d1
lint with make fmt
Ferdinanddb Mar 14, 2024
c70e464
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb May 18, 2024
1034b6c
remove podIdentityAzure references (but keep AzureWorkload ones)
Ferdinanddb May 18, 2024
5d9bcee
replace switch by if statements + fix error when comparing + close co…
Ferdinanddb May 19, 2024
acd9e28
generate a new token if the current one has expired + add log info st…
Ferdinanddb May 21, 2024
ff31521
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb May 21, 2024
239b8e2
minor change + add entry in CHANGELOG.md
Ferdinanddb May 23, 2024
6abe03b
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb May 27, 2024
f407153
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb May 31, 2024
6fd7dfa
Add first draft of an e2e test
Ferdinanddb Jun 2, 2024
9ed7d39
Add comment and change package name
Ferdinanddb Jun 2, 2024
432c280
fix golanci lint
Ferdinanddb Jun 2, 2024
3783d1c
use identity 1 in e2e tests
Ferdinanddb Jun 4, 2024
b358784
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jun 4, 2024
01471e6
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jun 4, 2024
cc5636c
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jun 8, 2024
718d7de
fix e2e tests after testing it + change .env file
Ferdinanddb Jun 8, 2024
d0a0455
go fmt
Ferdinanddb Jun 8, 2024
9bc3a6e
remove entries in .env file
Ferdinanddb Jun 10, 2024
85543de
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jun 22, 2024
0fb1288
Add Postgres env variables
Ferdinanddb Jun 22, 2024
6fa97f9
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jun 24, 2024
548e6d3
remove useless variables
Ferdinanddb Jun 24, 2024
84e9252
Update e2e test to reset all the task using a query
JorTurFer Jul 24, 2024
f2ef6af
Merge branch 'main' into feature/support-access-token-postgres-scaler
JorTurFer Jul 24, 2024
ea13133
missing changes after rebase
JorTurFer Jul 24, 2024
1133382
fix typo in the query
JorTurFer Jul 24, 2024
130bf5a
remove the load
JorTurFer Jul 24, 2024
21b8e3c
fix style
JorTurFer Jul 24, 2024
1a17069
Merge branch 'main' into feature/support-access-token-postgres-scaler
Ferdinanddb Jul 27, 2024
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
Prev Previous commit
Next Next commit
remove podIdentityAzure references (but keep AzureWorkload ones)
Signed-off-by: Ferdinand de Baecque <45566171+Ferdinanddb@users.noreply.github.com>
  • Loading branch information
Ferdinanddb committed May 18, 2024
commit 1034b6c593b5711bf9557bb5f12a32f7bb90f03a
6 changes: 3 additions & 3 deletions pkg/scalers/postgresql_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func parsePostgreSQLMetadata(logger logr.Logger, config *scalersconfig.ScalerCon
params = append(params, "password="+escapePostgreConnectionParameter(password))
meta.connection = strings.Join(params, " ")
}
case kedav1alpha1.PodIdentityProviderAzure, kedav1alpha1.PodIdentityProviderAzureWorkload:
case kedav1alpha1.PodIdentityProviderAzureWorkload:
params, err := buildConnArray(config)
if err != nil {
return nil, authPodIdentity, fmt.Errorf("failed to parse fields related to the connection")
Expand Down Expand Up @@ -199,7 +199,7 @@ func getConnection(ctx context.Context, meta *postgreSQLMetadata, podIdentity ke
connectionString := meta.connection

switch podIdentity.Provider {
case kedav1alpha1.PodIdentityProviderAzure, kedav1alpha1.PodIdentityProviderAzureWorkload:
case kedav1alpha1.PodIdentityProviderAzureWorkload:
accessToken, err := getAzureAccessToken(ctx, meta, azureDatabasePostgresResource)
if err != nil {
return nil, err
Expand Down Expand Up @@ -236,7 +236,7 @@ func (s *postgreSQLScaler) getActiveNumber(ctx context.Context) (float64, error)

// Only one Azure case now but maybe more in the future.
switch s.podIdentity.Provider {
case kedav1alpha1.PodIdentityProviderAzure, kedav1alpha1.PodIdentityProviderAzureWorkload:
case kedav1alpha1.PodIdentityProviderAzureWorkload:
if s.metadata.azureAuthContext.token.ExpiresOn.After(time.Now().Add(time.Second * 60)) {
newConnection, err := getConnection(ctx, s.metadata, s.podIdentity, s.logger)
if err != nil {
Expand Down
19 changes: 0 additions & 19 deletions pkg/scalers/postgresql_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,25 +110,6 @@ func TestPodIdentityAzureWorkloadPosgresSQLConnectionStringGeneration(t *testing
}
}

var testPodIdentityAzurePostgreSQLConnectionstring = []postgreSQLConnectionStringTestData{
// from meta
{metadata: map[string]string{"query": "test_query", "targetQueryValue": "5", "host": "localhost", "port": "1234", "dbName": "testDb", "userName": "user", "sslmode": "required"}, connectionString: "host=localhost port=1234 user=user dbname=testDb sslmode=required %PASSWORD%"},
}

func TestPodIdentityAzurePosgresSQLConnectionStringGeneration(t *testing.T) {
identityID := "IDENTITY_ID_CORRESPONDING_TO_USERNAME_FIELD"
for _, testData := range testPodIdentityAzurePostgreSQLConnectionstring {
meta, _, err := parsePostgreSQLMetadata(logr.Discard(), &scalersconfig.ScalerConfig{ResolvedEnv: testData.resolvedEnv, TriggerMetadata: testData.metadata, PodIdentity: kedav1alpha1.AuthPodIdentity{Provider: kedav1alpha1.PodIdentityProviderAzure, IdentityID: &identityID}, AuthParams: testData.authParam, TriggerIndex: 0})
if err != nil {
t.Fatal("Could not parse metadata:", err)
}

if meta.connection != testData.connectionString {
t.Errorf("Error generating connectionString, expected '%s' and get '%s'", testData.connectionString, meta.connection)
}
}
}

type parsePostgresMetadataTestData struct {
metadata map[string]string
authParams map[string]string
Expand Down
Loading