Bug 1: services.go — k8s IsInvalid error (CRD enum validation) маппился в 500. Теперь errors.IsInvalid() → 400 Bad Request (invalid service spec). Bug 2: service_controller.go buildServiceDeployment не передавал env SLESS_ENTRYPOINT в под. Добавлен в envVars из svc.Spec.Entrypoint. Без него server.py использовал fallback handler.handle и не замечал неверный entrypoint. operator_failure_test.sh 12B-2: обновлён под новое правильное поведение — create ruby3.0 → 400 (не 201). Старый 201-путь сохранён как warn для совместимости.
65 lines
1.9 KiB
Terraform
65 lines
1.9 KiB
Terraform
// 2026-03-17 17:05
|
|
// main.tf — провайдеры и переменные для Nubes + sless.
|
|
terraform {
|
|
required_providers {
|
|
nubes = {
|
|
source = "terra.k8c.ru/nubes/nubes"
|
|
version = "5.0.19"
|
|
}
|
|
sless = {
|
|
source = "terra.k8c.ru/naeel/sless"
|
|
version = "~> 0.1.19"
|
|
}
|
|
}
|
|
}
|
|
|
|
variable "api_token" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Nubes API token"
|
|
}
|
|
variable "s3_uid" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Nubes S3 UID"
|
|
}
|
|
variable "realm" {
|
|
type = string
|
|
sensitive = true
|
|
description = "resource_realm parameter for nubes_postgres resource"
|
|
}
|
|
|
|
// 2026-03-18 — pg_user/pg_password помечены optional (default="") для сверки.
|
|
// Реальные credentials берутся из vault_secrets через locals в resources.tf.
|
|
variable "pg_user" {
|
|
type = string
|
|
sensitive = true
|
|
default = ""
|
|
description = "Только для сверки. Реальный username из nubes_postgres_user.pg_user.username. Должен совпадать с vault."
|
|
}
|
|
|
|
variable "pg_password" {
|
|
type = string
|
|
sensitive = true
|
|
default = ""
|
|
description = "Только для сверки. Реальный пароль из vault_secrets. Должен совпадать с tfvars."
|
|
}
|
|
|
|
# Nubes endpoints — не путать:
|
|
# API Dashboard (для Terraform-провайдеров): https://deck-api-test.ngcloud.ru/api/v1/index.cfm
|
|
# UI облака (только браузер, не для кода): https://deck-test.ngcloud.ru/
|
|
# ВАЖНО: nubes и sless провайдеры требуют API endpoint, НЕ UI!
|
|
|
|
provider "nubes" {
|
|
api_token = var.api_token
|
|
api_endpoint = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
|
}
|
|
|
|
provider "sless" {
|
|
endpoint = "https://sless.kube5s.ru"
|
|
token = var.api_token
|
|
nubes_endpoint = "https://deck-api-test.ngcloud.ru/api/v1"
|
|
}
|
|
|
|
|