airbytehq / airbytehq/airbyte

Azure key vault tags not parsing into right environment variable

Aberta
#80,825 3 comentários 0 reações 0 responsáveis Ver no GitHub
area/platform autoteam community needs-triage team/compose team/platform-move type/bug
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

Abrir o 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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.