[Feature request] Support configuring initial credentials via environment variables
- 主要言語
- Java
- スター
- 6.4k
- フォーク
- 1.2k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 115
説明
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.
### Motivation
When deploying IoTDB in a containerized or orchestrated environment (e.g. Kubernetes), there is currently no way to set the initial user credentials through environment variables. The only documented approach is to start the server with default credentials, manually connect, and run:
`ALTER USER root SET PASSWORD 'newpwd';`
This is impractical for automated deployments where manual intervention is not an option.
Requested behavior:
The entrypoint/startup scripts should check for the presence of environment variables — for example IOTDB_USER and IOTDB_PASSWORD — and, if set, apply those credentials automatically on first startup. This would allow orchestration tools (Helm charts, Docker Compose, etc.) to inject credentials via secrets without requiring a manual post-deploy step.
Use case:
```
- name: IOTDB_USER
valueFrom:
secretKeyRef:
name: iotdb-secret
key: iotdb-user
- name: IOTDB_PASSWORD
valueFrom:
secretKeyRef:
name: iotdb-secret
key: iotdb-password
```
In a Kubernetes Helm chart, we inject IOTDB_USER and IOTDB_PASSWORD into the pod spec from a Secret:
The environment variables are present inside the container, but IoTDB ignores them entirely. The server starts with the default root/root credentials regardless.
### Solution
If IOTDB_USER and IOTDB_PASSWORD are set, the startup scripts should apply them (e.g. by running the equivalent of ALTER USER root SET PASSWORD ...) so the instance is ready to use with the desired credentials without manual intervention.
### Alternatives
_No response_
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
コントリビューションガイド
調査の方向性
まず、サーバーと認証情報を初期化する IoTDB のエントリポイントまたは起動スクリプトを見つけます。初期 root アカウントがどのように作成されるかを追跡し、そのうえで初回起動時に IOTDB_USER と IOTDB_PASSWORD を読み取れそうな場所を特定します。コンテナ化されたデプロイメントでこれらの変数を指定し、手動で ALTER USER を実行せずに要求された認証情報で起動できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- docker-compose, helm, java, kubernetes
- 領域
- authentication, database, devops
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 55/100