Files
claude-code/values.schema.json
claude c31dd5875c
Helm Chart Release / release-chart (push) Successful in 7s
Build Session Image / build-push (push) Successful in 2m5s
feat: git identity を Web UI から登録・削除できるようにする (v2.1.263-f)
helm --set-file ではなく UI から SSH 秘密鍵 + known_hosts / HTTPS トークンを登録可能に。

- git.guiIdentities.enabled(既定 true)。UI に「認証情報」カード(一覧/追加/削除)
- GET/POST/DELETE /api/identities。登録分はセッション NS の Secret
  (ラベル identity-source=gui / identity-type)として保存。Helm 管理分と同一覧に統合
- manager.py: resolve_identity / list_identities / create_gui_identity / delete_gui_identity。
  build_pod と create_session は Helm 管理 + GUI 登録の両方を解決。
  /api/config の identities を {name,type,source} 配列に変更
- rbac.yaml: guiIdentities.enabled 時のみ manager Role に同 NS secrets の CRUD を付与
- 秘密鍵はリクエストボディで manager へ届くため README に経路 TLS 必須を明記
- helm lint / template 検証済み
2026-09-09 12:47:50 +09:00

296 lines
9.7 KiB
JSON

{
"title": "claude-code Helm chart values",
"type": "object",
"additionalProperties": true,
"properties": {
"nameOverride": { "type": "string" },
"fullnameOverride": { "type": "string" },
"image": {
"type": "object",
"additionalProperties": false,
"required": ["gateway", "manager", "session"],
"properties": {
"gateway": { "$ref": "#/definitions/image" },
"manager": { "$ref": "#/definitions/image" },
"session": { "$ref": "#/definitions/image" }
}
},
"imagePullSecrets": {
"type": "array",
"items": { "type": "object", "required": ["name"], "properties": { "name": { "type": "string" } } }
},
"gateway": {
"type": "object",
"additionalProperties": false,
"properties": {
"replicaCount": { "type": "integer", "minimum": 1 },
"port": { "type": "integer", "minimum": 1, "maximum": 65535 },
"resources": { "type": "object" }
}
},
"manager": {
"type": "object",
"additionalProperties": false,
"properties": {
"logLevel": { "type": "string", "enum": ["debug", "info", "warning", "error"] },
"resources": { "type": "object" }
}
},
"sessionsNamespace": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": { "type": "string" },
"create": { "type": "boolean" },
"podSecurityLevel": { "type": "string", "enum": ["privileged", "baseline", "restricted"] },
"resourceQuota": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"hard": { "type": "object" }
}
},
"limitRange": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"max": { "type": "object" },
"default": { "type": "object" },
"defaultRequest": { "type": "object" }
}
}
}
},
"auth": {
"type": "object",
"additionalProperties": false,
"required": ["mode"],
"properties": {
"mode": { "type": "string", "enum": ["token", "basic", "forward", "none"] },
"token": {
"type": "object",
"additionalProperties": false,
"properties": {
"value": { "type": "string" },
"existingSecret": { "type": "string" },
"existingSecretKey": { "type": "string" }
}
},
"basic": {
"type": "object",
"additionalProperties": false,
"properties": {
"users": { "type": "array", "items": { "type": "string" } },
"existingSecret": { "type": "string" },
"existingSecretKey": { "type": "string" }
}
},
"forward": {
"type": "object",
"additionalProperties": false,
"properties": {
"url": { "type": "string" },
"signInUrl": { "type": "string" }
}
}
}
},
"anthropic": {
"type": "object",
"additionalProperties": false,
"required": ["authMode"],
"properties": {
"authMode": { "type": "string", "enum": ["apiKey", "oauth", "credentials"] },
"apiKey": { "type": "string" },
"oauthToken": { "type": "string" },
"credentialsJson": { "type": "string" },
"existingSecret": { "type": "string" },
"existingSecretKeyApiKey": { "type": "string" },
"existingSecretKeyOauthToken": { "type": "string" },
"existingSecretKeyCredentials": { "type": "string" },
"extraEnv": { "type": "object" },
"refresher": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"schedule": { "type": "string" },
"refreshIfExpiresInSeconds": { "type": "integer", "minimum": 60 },
"tokenUrl": { "type": "string" },
"clientId": { "type": "string" },
"resources": { "type": "object" }
}
}
}
},
"git": {
"type": "object",
"additionalProperties": false,
"required": ["allowedHosts"],
"properties": {
"allowedHosts": { "type": "array", "items": { "type": "string" } },
"allowArbitraryRepos": { "type": "boolean" },
"defaultAuthorName": { "type": "string" },
"defaultAuthorEmail": { "type": "string" },
"guiIdentities": {
"type": "object",
"additionalProperties": false,
"properties": { "enabled": { "type": "boolean" } }
},
"identities": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": false,
"required": ["type"],
"properties": {
"type": { "type": "string", "enum": ["ssh", "https-token"] },
"sshPrivateKey": { "type": "string" },
"knownHosts": { "type": "string" },
"username": { "type": "string" },
"token": { "type": "string" },
"existingSecret": { "type": "string" },
"existingSecretKeyPrivateKey": { "type": "string" },
"existingSecretKeyKnownHosts": { "type": "string" },
"existingSecretKeyToken": { "type": "string" }
}
}
}
}
},
"session": {
"type": "object",
"additionalProperties": false,
"properties": {
"autoStartClaude": { "type": "boolean" },
"workspaceDir": { "type": "string" },
"ttydPort": { "type": "integer", "minimum": 1, "maximum": 65535 },
"extraApkPackages": { "type": "array", "items": { "type": "string" } },
"claudeCodeVersion": { "type": "string" },
"resources": { "type": "object" },
"idleTimeoutSeconds": { "type": "integer", "minimum": 60 },
"maxLifetimeSeconds": { "type": "integer", "minimum": 300 },
"reaper": {
"type": "object",
"additionalProperties": false,
"properties": {
"intervalSeconds": { "type": "integer", "minimum": 10 },
"terminatedRetentionSeconds": { "type": "integer", "minimum": 0 },
"cronjob": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"schedule": { "type": "string" }
}
}
}
},
"maxSessions": { "type": "integer", "minimum": 1 },
"verifyCommand": { "type": "string" },
"autoPush": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"branchPrefix": { "type": "string" },
"protectedBranches": { "type": "array", "items": { "type": "string" } }
}
},
"podLabels": { "type": "object" },
"podAnnotations": { "type": "object" },
"nodeSelector": { "type": "object" },
"tolerations": { "type": "array" },
"priorityClassName": { "type": "string" }
}
},
"networkPolicy": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"dnsNamespaceSelector": { "type": "object" },
"allowInternetHttps": { "type": "boolean" },
"allowSshGit": { "type": "boolean" },
"blockedEgressCIDRs": { "type": "array", "items": { "type": "string" } },
"sessionEgressExtra": {
"type": "array",
"items": {
"type": "object",
"required": ["cidr", "ports"],
"properties": {
"cidr": { "type": "string" },
"ports": { "type": "array" }
}
}
}
}
},
"ingress": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"className": { "type": "string" },
"annotations": { "type": "object" },
"hosts": { "type": "array" },
"tls": { "type": "array" }
}
},
"service": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": { "type": "string", "enum": ["ClusterIP", "NodePort", "LoadBalancer"] },
"port": { "type": "integer", "minimum": 1, "maximum": 65535 },
"nodePort": { "type": ["integer", "null"], "minimum": 1, "maximum": 65535 },
"annotations": { "type": "object" },
"loadBalancerIP": { "type": "string" },
"loadBalancerClass": { "type": "string" },
"loadBalancerSourceRanges": { "type": "array", "items": { "type": "string" } },
"externalTrafficPolicy": { "type": "string", "enum": ["", "Cluster", "Local"] },
"labels": { "type": "object" }
}
},
"podSecurityContext": { "type": "object" },
"containerSecurityContext": { "type": "object" },
"commonLabels": { "type": "object" },
"commonAnnotations": { "type": "object" },
"podDisruptionBudget": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"minAvailable": { "type": ["integer", "string"] }
}
}
},
"definitions": {
"image": {
"type": "object",
"additionalProperties": false,
"required": ["registry", "repository", "tag"],
"properties": {
"registry": { "type": "string" },
"repository": { "type": "string" },
"tag": { "type": "string" },
"pullPolicy": { "type": "string", "enum": ["Always", "IfNotPresent", "Never"] }
}
}
}
}