Add glance service and configmap

This commit is contained in:
Daniel Cosme
2026-05-07 12:17:47 -04:00
parent 58c733260f
commit ad9659d1ee
7 changed files with 187 additions and 8 deletions

View File

@@ -4,17 +4,61 @@ import (
"danicos.dev/daniel/go-kube/pkg/kube"
"danicos.dev/daniel/go-kube/pkg/stack"
"danicos.dev/daniel/homelab/pkg/root"
apps "k8s.io/api/apps/v1"
core "k8s.io/api/core/v1"
)
var meta kube.Metadata
var Secret = struct {
Name string
TokenKey string
}{
Name: root.Glance.Name + "-secret",
TokenKey: "token",
}
var Namespace = kube.Namespace(root.Glance.Name)
var meta kube.Metadata
var srv core.Service
var config_map core.ConfigMap
func init() {
meta = kube.NewMetadata(root.Glance.Name, Namespace)
srv = meta.Service(root.Glance.Port)
srv.Spec.Type = core.ServiceTypeNodePort
srv.Spec.Ports[0].NodePort = int32(root.Glance.Public.NodePort)
config_map = kube.ConfigFromFile("glance.yml", "./config/glance/config/glance.yml", meta)
config_map.Data["home.yml"] = string(kube.ReadFileBytes("./config/glance/config/home.yml"))
config_map.Data["user.css"] = string(kube.ReadFileBytes("./config/glance/assets/user.css"))
}
func Stack() stack.Stack {
kz := kube.NewKuztomizedStack(
meta,
map[string]any{
"namespace": Namespace,
"service": srv,
"configmap": config_map,
// "deployment": Deployment(),
},
)
return kz.Stack("glance")
}
func Deployment() apps.Deployment {
// MY_SECRET_TOKEN=123456 ?
// Config volume - ReadOnly?
// Assets volume - ReadOnly?
// Mount /etc/localtime (ReadOnly)
podSpec := core.PodSpec{
Containers: []core.Container{{
Name: root.Glance.Name,
Image: root.Glance.Image,
Env: kube.NewEnvVarWithSecret(nil, nil, Secret.Name),
}},
Volumes: []core.Volume{
kube.NewVolumeFrom(kube.VolumeSourceConfigMap, "config", config_map.Name),
},
}
return kube.NewDeployment(meta, podSpec)
}

View File

@@ -45,12 +45,12 @@ var Immich = Service{
var Glance = Service{
Name: "glance",
Image: "",
Port: 0, // Server Port
// Public: &Public{
// URL: "https://photos.danicos.me",
// NodePort: 30011,
// },
Image: "glanceapp/glance:v0.8.4",
Port: 8080, // Server Port
Public: &Public{
URL: "https://home.danicos.me",
NodePort: 30009,
},
}
var (