Add Glance Deployment
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
user.css: |
|
||||||
|
main {
|
||||||
|
}
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: glance-assets-configmap
|
||||||
|
namespace: glance
|
||||||
@@ -3,6 +3,15 @@ data:
|
|||||||
glance.yml: |
|
glance.yml: |
|
||||||
server:
|
server:
|
||||||
assets-path: /app/assets
|
assets-path: /app/assets
|
||||||
|
# proxied: true
|
||||||
|
|
||||||
|
# auth:
|
||||||
|
# secret-key: # this must be set to a random value generated using the secret:make CLI command
|
||||||
|
# users:
|
||||||
|
# admin:
|
||||||
|
# password: 123456
|
||||||
|
# svilen:
|
||||||
|
# password: 123456
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
# Note: assets are cached by the browser, changes to the CSS file
|
# Note: assets are cached by the browser, changes to the CSS file
|
||||||
@@ -102,9 +111,6 @@ data:
|
|||||||
- go-gitea/gitea
|
- go-gitea/gitea
|
||||||
- immich-app/immich
|
- immich-app/immich
|
||||||
- syncthing/syncthing
|
- syncthing/syncthing
|
||||||
user.css: |
|
|
||||||
main {
|
|
||||||
}
|
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
name: glance-configmap
|
name: glance-configmap
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: glance
|
||||||
|
name: glance
|
||||||
|
namespace: glance
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: glance
|
||||||
|
strategy: {}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: glance
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: glanceapp/glance:v0.8.4
|
||||||
|
name: glance
|
||||||
|
resources: {}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/config
|
||||||
|
name: config
|
||||||
|
- mountPath: /app/assets
|
||||||
|
name: assets
|
||||||
|
- mountPath: /etc/localtime
|
||||||
|
name: localtime
|
||||||
|
readOnly: true
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: glance-configmap
|
||||||
|
name: config
|
||||||
|
- configMap:
|
||||||
|
name: glance-assets-configmap
|
||||||
|
name: assets
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/localtime
|
||||||
|
type: File
|
||||||
|
name: localtime
|
||||||
|
status: {}
|
||||||
@@ -4,6 +4,8 @@ metadata:
|
|||||||
name: glance
|
name: glance
|
||||||
namespace: glance
|
namespace: glance
|
||||||
resources:
|
resources:
|
||||||
- configmap.yaml
|
- configmap-assets.yaml
|
||||||
|
- configmap-glance.yaml
|
||||||
|
- deployment.yaml
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- service.yaml
|
- service.yaml
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
server:
|
server:
|
||||||
assets-path: /app/assets
|
assets-path: /app/assets
|
||||||
|
# proxied: true
|
||||||
|
|
||||||
|
# auth:
|
||||||
|
# secret-key: # this must be set to a random value generated using the secret:make CLI command
|
||||||
|
# users:
|
||||||
|
# admin:
|
||||||
|
# password: 123456
|
||||||
|
# svilen:
|
||||||
|
# password: 123456
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
# Note: assets are cached by the browser, changes to the CSS file
|
# Note: assets are cached by the browser, changes to the CSS file
|
||||||
|
|||||||
+41
-10
@@ -19,7 +19,8 @@ var Secret = struct {
|
|||||||
var Namespace = kube.Namespace(root.Glance.Name)
|
var Namespace = kube.Namespace(root.Glance.Name)
|
||||||
var meta kube.Metadata
|
var meta kube.Metadata
|
||||||
var srv core.Service
|
var srv core.Service
|
||||||
var config_map core.ConfigMap
|
var config_glance core.ConfigMap
|
||||||
|
var config_assets core.ConfigMap
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
meta = kube.NewMetadata(root.Glance.Name, Namespace)
|
meta = kube.NewMetadata(root.Glance.Name, Namespace)
|
||||||
@@ -27,19 +28,21 @@ func init() {
|
|||||||
srv.Spec.Type = core.ServiceTypeNodePort
|
srv.Spec.Type = core.ServiceTypeNodePort
|
||||||
srv.Spec.Ports[0].NodePort = int32(root.Glance.Public.NodePort)
|
srv.Spec.Ports[0].NodePort = int32(root.Glance.Public.NodePort)
|
||||||
|
|
||||||
config_map = kube.ConfigFromFile("glance.yml", "./config/glance/config/glance.yml", meta)
|
config_glance = kube.ConfigFromFile("glance.yml", "./config/glance/config/glance.yml", meta)
|
||||||
config_map.Data["home.yml"] = string(kube.ReadFileBytes("./config/glance/config/home.yml"))
|
config_glance.Data["home.yml"] = string(kube.ReadFileBytes("./config/glance/config/home.yml"))
|
||||||
config_map.Data["user.css"] = string(kube.ReadFileBytes("./config/glance/assets/user.css"))
|
meta_assets := kube.NewMetadata(root.Glance.Name+"-assets", Namespace)
|
||||||
|
config_assets = kube.ConfigFromFile("user.css", "./config/glance/assets/user.css", meta_assets)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Stack() stack.Stack {
|
func Stack() stack.Stack {
|
||||||
kz := kube.NewKuztomizedStack(
|
kz := kube.NewKuztomizedStack(
|
||||||
meta,
|
meta,
|
||||||
map[string]any{
|
map[string]any{
|
||||||
"namespace": Namespace,
|
"namespace": Namespace,
|
||||||
"service": srv,
|
"service": srv,
|
||||||
"configmap": config_map,
|
"configmap-glance": config_glance,
|
||||||
// "deployment": Deployment(),
|
"configmap-assets": config_assets,
|
||||||
|
"deployment": Deployment(),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
return kz.Stack("glance")
|
return kz.Stack("glance")
|
||||||
@@ -50,14 +53,42 @@ func Deployment() apps.Deployment {
|
|||||||
// Config volume - ReadOnly?
|
// Config volume - ReadOnly?
|
||||||
// Assets volume - ReadOnly?
|
// Assets volume - ReadOnly?
|
||||||
// Mount /etc/localtime (ReadOnly)
|
// Mount /etc/localtime (ReadOnly)
|
||||||
|
configVol := kube.NewVolumeFrom(kube.VolumeSourceConfigMap, "config", config_glance.Name)
|
||||||
|
assetsVol := kube.NewVolumeFrom(kube.VolumeSourceConfigMap, "assets", config_assets.Name)
|
||||||
|
localtimeVol := core.Volume{
|
||||||
|
Name: "localtime",
|
||||||
|
VolumeSource: core.VolumeSource{
|
||||||
|
HostPath: &core.HostPathVolumeSource{
|
||||||
|
Path: "/etc/localtime",
|
||||||
|
Type: new(core.HostPathFile),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
podSpec := core.PodSpec{
|
podSpec := core.PodSpec{
|
||||||
Containers: []core.Container{{
|
Containers: []core.Container{{
|
||||||
Name: root.Glance.Name,
|
Name: root.Glance.Name,
|
||||||
Image: root.Glance.Image,
|
Image: root.Glance.Image,
|
||||||
Env: kube.NewEnvVarWithSecret(nil, nil, Secret.Name),
|
// Env: kube.NewEnvVarWithSecret(nil, nil, Secret.Name),
|
||||||
|
VolumeMounts: []core.VolumeMount{
|
||||||
|
{
|
||||||
|
Name: configVol.Name,
|
||||||
|
MountPath: "/app/config",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: assetsVol.Name,
|
||||||
|
MountPath: "/app/assets",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: localtimeVol.Name,
|
||||||
|
MountPath: "/etc/localtime",
|
||||||
|
ReadOnly: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
}},
|
}},
|
||||||
Volumes: []core.Volume{
|
Volumes: []core.Volume{
|
||||||
kube.NewVolumeFrom(kube.VolumeSourceConfigMap, "config", config_map.Name),
|
configVol,
|
||||||
|
assetsVol,
|
||||||
|
localtimeVol,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return kube.NewDeployment(meta, podSpec)
|
return kube.NewDeployment(meta, podSpec)
|
||||||
|
|||||||
Reference in New Issue
Block a user