airbytehq / airbytehq/airbyte

Azure key vault tags not parsing into right environment variable

未關閉
#80,825 3 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
area/platform autoteam community needs-triage team/compose team/platform-move type/bug
主要語言
Python
星號
22.1k
分支
5.4k
平均合併
5 小時
30 天內合併 PR
671

描述

### 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

貢獻指南

開啟貢獻指南

研究方向

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.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
azure, helm, kotlin
領域
backend, cloud, security
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
66/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。