Skip to content

多租户选项

你在解决什么问题

SaaS 和内部平台通常需要按租户提供 namespace、kubeconfig、API 版本和超时默认值。IHelmOptionsProvider 把这些决策集中到请求之外。

安装哪些包

powershell
dotnet add package HelmSharp.Action --version 1.1.0

完整最小代码

csharp
public sealed class StaticHelmOptionsProvider : IHelmOptionsProvider
{
    public ValueTask<HelmExecutionOptions> GetHelmAsync(CancellationToken cancellationToken = default)
        => ValueTask.FromResult(new HelmExecutionOptions
        {
            DefaultNamespace = "default",
            FieldManager = "helmsharp",
            TimeoutSeconds = 300,
            KubeVersion = "1.30.0",
            ApiVersions =
            [
                "apps/v1",
                "batch/v1",
                "policy/v1"
            ]
        });
}

关键 API 为什么这样用

请求描述一次操作。HelmExecutionOptions 描述执行这次操作的环境策略:kubeconfig、默认 namespace、字段管理器、超时时间、目标 Kubernetes 版本和 API 版本。

生产环境注意事项

  • 构造客户端或选项提供器(options provider)前先解析租户身份。
  • 不要允许请求体指定任意 kubeconfig 路径。
  • 租户 id、部署 id 等审计字段应写入产品自己的日志。

下一步

阅读 错误处理,保证租户级失败可诊断。

基于 MIT License 发布。