Add new model files and update Ansible playbooks for Qwen3.5 and Qwen3.6
- Created model files for Qwen3.5 with different context lengths. - Added a new Ansible host variable file for CI server configuration. - Updated GPU server host variables to include Ollama models and model files. - Enhanced playbooks for Podman to manage Ollama models, including copying model files and checking existing models. - Introduced a new playbook for setting up Qwen3.6 with specific configurations. - Updated Windows SSH tasks to improve security and configuration management. - Added a Python utility to parse Ollama model names from command output. - Modified Terraform configurations to include new DNS entries and proxy settings. - Improved Nginx proxy configurations with timeout settings.
This commit is contained in:
@@ -116,6 +116,11 @@ locals {
|
||||
name = "search"
|
||||
type = "CNAME"
|
||||
content = "dev-01.${local.lab_domain}."
|
||||
},
|
||||
{
|
||||
name = "ci-01"
|
||||
type = "A"
|
||||
content = "10.19.4.207"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -139,12 +139,14 @@ locals {
|
||||
|
||||
proxy_services = {
|
||||
"open-webui" = {
|
||||
http_port = 8080
|
||||
https_port = 8443
|
||||
tls = true
|
||||
resolver = "10.19.4.136"
|
||||
fqdn = ["ai.alexpires.me"]
|
||||
upstream = "https://open-webui.lab.alexpires.me"
|
||||
http_port = 8080
|
||||
https_port = 8443
|
||||
tls = true
|
||||
resolver = "10.19.4.136"
|
||||
fqdn = ["ai.alexpires.me"]
|
||||
read_timeout = "300s"
|
||||
send_timeout = "300s"
|
||||
upstream = "https://open-webui.lab.alexpires.me"
|
||||
locations = [
|
||||
{
|
||||
path = "/ws/socket.io/"
|
||||
|
||||
@@ -4,10 +4,12 @@ resource "kubernetes_ingress_v1" "openwebui" {
|
||||
namespace = kubernetes_namespace.openwebui.metadata[0].name
|
||||
|
||||
annotations = {
|
||||
"kubernetes.io/ingress.class" = "public"
|
||||
"cert-manager.io/cluster-issuer" = "letsencrypt-prod"
|
||||
"kubernetes.io/tls-acme" = "true"
|
||||
"nginx.ingress.kubernetes.io/ssl-redirect" = "true"
|
||||
"kubernetes.io/ingress.class" = "public"
|
||||
"cert-manager.io/cluster-issuer" = "letsencrypt-prod"
|
||||
"kubernetes.io/tls-acme" = "true"
|
||||
"nginx.ingress.kubernetes.io/ssl-redirect" = "true"
|
||||
"nginx.ingress.kubernetes.io/proxy-read-timeout" = "600s"
|
||||
"nginx.ingress.kubernetes.io/proxy-send-timeout" = "600s"
|
||||
}
|
||||
}
|
||||
spec {
|
||||
|
||||
@@ -3,4 +3,7 @@ locals {
|
||||
|
||||
app_version = var.tag
|
||||
app_fqdn = var.fqdn
|
||||
|
||||
searxng_config = templatefile("${path.module}/resources/settings.yml.tpl", {})
|
||||
searxng_config_checksum = md5(local.searxng_config)
|
||||
}
|
||||
|
||||
@@ -26,6 +26,17 @@ resource "kubernetes_config_map" "searxng_config" {
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_config_map" "searxng_config_file" {
|
||||
metadata {
|
||||
name = "searxng-config-file"
|
||||
namespace = kubernetes_namespace.searxng.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
"settings.yml" = local.searxng_config
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_secret" "searxng_secrets" {
|
||||
metadata {
|
||||
name = "searxng-keys"
|
||||
@@ -64,6 +75,9 @@ resource "kubernetes_deployment" "searxng" {
|
||||
labels = {
|
||||
app = "searxng"
|
||||
}
|
||||
annotations = {
|
||||
"checksum/config" = local.searxng_config_checksum
|
||||
}
|
||||
}
|
||||
|
||||
spec {
|
||||
@@ -145,6 +159,12 @@ resource "kubernetes_deployment" "searxng" {
|
||||
name = "searxng-tmp"
|
||||
mount_path = "/tmp"
|
||||
}
|
||||
|
||||
volume_mount {
|
||||
name = "searxng-config-file"
|
||||
mount_path = "/etc/searxng/settings.yml"
|
||||
sub_path = "settings.yml"
|
||||
}
|
||||
}
|
||||
|
||||
volume {
|
||||
@@ -158,6 +178,13 @@ resource "kubernetes_deployment" "searxng" {
|
||||
name = "searxng-tmp"
|
||||
empty_dir {}
|
||||
}
|
||||
|
||||
volume {
|
||||
name = "searxng-config-file"
|
||||
config_map {
|
||||
name = kubernetes_config_map.searxng_config_file.metadata[0].name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
use_default_settings: true
|
||||
search:
|
||||
formats:
|
||||
- html
|
||||
- json
|
||||
@@ -35,6 +35,9 @@ locals {
|
||||
tls = v.tls
|
||||
fqdn = length(v.fqdn) > 0 ? join(" ", v.fqdn) : k
|
||||
auth = length([for l in v.locations : true if l.private]) > 0
|
||||
send_timeout = v.send_timeout
|
||||
read_timeout = v.read_timeout
|
||||
connect_timeout = v.connect_timeout
|
||||
locations = [for l in v.locations : {
|
||||
path = l.path
|
||||
headers = merge(l.headers, coalesce(v.default_headers, local.default_headers))
|
||||
|
||||
@@ -44,6 +44,9 @@ location = /auth {
|
||||
rewrite ${l.rewrite};
|
||||
%{ endif ~}
|
||||
proxy_pass $upstream;
|
||||
proxy_connect_timeout ${connect_timeout};
|
||||
proxy_read_timeout ${read_timeout};
|
||||
proxy_send_timeout ${send_timeout};
|
||||
proxy_http_version 1.1;
|
||||
%{ for k,v in l.headers ~}
|
||||
proxy_set_header ${k} ${v};
|
||||
|
||||
@@ -41,6 +41,9 @@ variable "services" {
|
||||
ingress = optional(bool, true)
|
||||
service_http_port = optional(number, 80)
|
||||
service_https_port = optional(number, 443)
|
||||
read_timeout = optional(string, "60s")
|
||||
send_timeout = optional(string, "60s")
|
||||
connect_timeout = optional(string, "250ms")
|
||||
locations = optional(list(object({
|
||||
path = string,
|
||||
headers = optional(map(string), {}),
|
||||
|
||||
Reference in New Issue
Block a user