Azure key vault tags not parsing into right environment variable
- Linguagem predominante
- Python
- Estrelas
- 22.1k
- Forks
- 5.4k
- Merge médio
- 5h
- PRs com merge (30d)
- 671
Descrição
### Helm Chart Version
2.1.0
### What step the error happened?
Other
### Relevant information
When using `global.secretsManager.azureKeyVault.tags`, the tags provided via values.yaml appear to be expected in the format `key=value,...`
But upon looking at the configmap, it appears to be getting parsed into something like this:
```yaml
AB_AZURE_KEY_VAULT_TAGS: '[map[key:managed-by value:airbyte]]'
```
As a result, when persisting a connector, the backend fails with an internal server error.
### Relevant log output
```shell
[io-executor-thread-16] ERROR i.a.c.s.e.h.UncaughtExceptionHandler(handle):37 - Uncaught exception [errorId: 5c7a7041-713d-40ed-bbee-c4894093023f]: class KnownExceptionInfo {
message: Internal Server Error: AB_SECRET_MANAGER_SECRET_TAGS does not match the expected format "key1=value2,key2=value2": [map[key:managed-by value:airbyte]]. Please update the AB_SECRET_MANAGER_SECRET_TAGS env var configurations.
exceptionClassName: null
exceptionStack: [java.lang.IllegalArgumentException: AB_SECRET_MANAGER_SECRET_TAGS does not match the expected format "key1=value2,key2=value2": [map[key:managed-by value:airbyte]]. Please update the AB_SECRET_MANAGER_SECRET_TAGS env var configurations., at secrets.persistence.AzureKeyVaultClient.parseTags(AzureKeyVaultPersistence.kt:81), at secrets.persistence.SystemAzureKeyVaultClient.parseTags(AzureKeyVaultPersistence.kt:151), at secrets.persistence.AzureKeyVaultClient.createSecret(AzureKeyVaultPersistence.kt:108), at secrets.persistence.SystemAzureKeyVaultClient.createSecret(AzureKeyVaultPersistence.kt:151), at secrets.persistence.AzureKeyVaultPersistence.write(AzureKeyVaultPersistence.kt:38), at io.airbyte.config.secrets.persistence.SecretPersistence.writeWithExpiry(SecretPersistence.kt:51), at secrets.persistence.AzureKeyVaultPersistence.writeWithExpiry(AzureKeyVaultPersistence.kt:27), at io.airbyte.config.secrets.SecretsRepositoryWriter.splitSecretConfig(SecretsRepositoryWriter.kt:351), at io.airbyte.config.secrets.SecretsRepositoryWriter.createEphemeralFromConfig(SecretsRepositoryWriter.kt:327), at io.airbyte.commons.server.helpers.SecretSanitizer.sanitizePartialConfig(SecretSanitizer.kt:46), at io.airbyte.commons.server.helpers.SecretSanitizer.sanitizePartialConfig(SecretSanitizer.kt:63), at io.airbyte.server.services.CommandService.processCheckConfig(CommandService.kt:342), at io.airbyte.server.apis.controllers.CommandApiController.runCheckCommand(CommandApiController.kt:291), at io.airbyte.server.apis.controllers.$CommandApiController$Definition$Exec.dispatch(Unknown Source), at io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invokeUnsafe(AbstractExecutableMethodsDefinition.java:461), at io.micronaut.context.DefaultBeanContext$BeanContextUnsafeExecutionHandle.invokeUnsafe(DefaultBeanContext.java:4454), at io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:272), at io.micronaut.web.router.DefaultUriRouteMatch.execute(DefaultUriRouteMatch.java:38), at io.micronaut.http.server.RouteExecutor.executeRouteAndConvertBody(RouteExecutor.java:466), at io.micronaut.http.server.RouteExecutor.lambda$callRoute$5(RouteExecutor.java:443), at io.micronaut.core.execution.ExecutionFlow.lambda$async$0(ExecutionFlow.java:92), at io.micronaut.core.propagation.PropagatedContext.lambda$wrap$3(PropagatedContext.java:232), at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144), at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642), at java.base/java.lang.Thread.run(Thread.java:1583)]
rootCauseExceptionClassName: null
rootCauseExceptionStack: []
details: null
errorId: null
}
```
---
**Internal Tracking:** https://github.com/airbytehq/oncall/issues/12992
Guia de contribuição
Direção de pesquisa
Start with AzureKeyVaultPersistence.kt, especially parseTags at line 81, then trace how global.secretsManager.azureKeyVault.tags from values.yaml is rendered into the Helm chart ConfigMap. Confirm the resulting AB_AZURE_KEY_VAULT_TAGS value matches the expected key=value format and that connector persistence no longer fails with the reported error.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- azure, helm, kotlin
- Domínio
- backend, cloud, security
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 66/100