sqs-operator v0.1.11: fix ensureService UI port, FILE_LOCK=NO for H2

This commit is contained in:
Naeel
2026-04-08 22:17:41 +03:00
parent 7ea7e9b360
commit a04d72052e
2 changed files with 24 additions and 10 deletions
@@ -667,14 +667,27 @@ func (r *QueueServiceReconciler) ensureService(ctx context.Context, qs *sqsv1alp
Selector: map[string]string{ Selector: map[string]string{
"sqs.kube5s.ru/tenant": qs.Spec.TenantID, "sqs.kube5s.ru/tenant": qs.Spec.TenantID,
}, },
Ports: []corev1.ServicePort{ Ports: func() []corev1.ServicePort {
{ // Базовый порт ElasticMQ — всегда
Name: "sqs-http", ports := []corev1.ServicePort{
Port: int32(elasticMQPort), {
TargetPort: intstr.FromInt(elasticMQPort), Name: "sqs-http",
Protocol: corev1.ProtocolTCP, Port: int32(elasticMQPort),
}, TargetPort: intstr.FromInt(elasticMQPort),
}, Protocol: corev1.ProtocolTCP,
},
}
// Порт UI — только если enableUI=true; при self-healing сервис пересоздаётся с нужными портами
if qs.Spec.EnableUI {
ports = append(ports, corev1.ServicePort{
Name: "ui-http",
Port: int32(elasticMQUIPort),
TargetPort: intstr.FromInt(elasticMQUIPort),
Protocol: corev1.ProtocolTCP,
})
}
return ports
}(),
}, },
} }
return r.Create(ctx, svc) return r.Create(ctx, svc)
@@ -16,11 +16,12 @@ func GenerateConfig(tenantID, externalHost string, persistence bool, autoCreateQ
persistenceBlock := "" persistenceBlock := ""
if persistence { if persistence {
// H2 база данных хранит очереди и сообщения между рестартами pod. // H2 база данных хранит очереди и сообщения между рестартами pod.
// Файл /data/elasticmq.db — на PVC тенанта. // FILE_LOCK=NO — отключает file-lock, который остаётся при принудительном kill JVM
// (kubectl rollout restart). Один pod на тенанта — конкурентный доступ исключён.
persistenceBlock = ` persistenceBlock = `
messages-storage { messages-storage {
enabled = true enabled = true
uri = "jdbc:h2:/data/elasticmq" uri = "jdbc:h2:/data/elasticmq;FILE_LOCK=NO"
}` }`
} else { } else {
persistenceBlock = ` persistenceBlock = `