mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-03 07:01:35 -06:00
const to config.
This commit is contained in:
@@ -15,6 +15,9 @@ type Room struct {
|
||||
EprMin uint16
|
||||
EprMax uint16
|
||||
|
||||
NekoImage string
|
||||
InstanceName string
|
||||
|
||||
TraefikDomain string
|
||||
TraefikEntrypoint string
|
||||
TraefikCertresolver string
|
||||
@@ -32,6 +35,16 @@ func (Room) Init(cmd *cobra.Command) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("neko_image", "m1k1o/neko:latest", "neko image to be used")
|
||||
if err := viper.BindPFlag("neko_image", cmd.PersistentFlags().Lookup("neko_image")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("instance_name", "neko-rooms", "unique instance name (if running muliple on the same host)")
|
||||
if err := viper.BindPFlag("instance_name", cmd.PersistentFlags().Lookup("instance_name")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().String("traefik_domain", "neko.lan", "traefik: domain on which will be container hosted")
|
||||
if err := viper.BindPFlag("traefik_domain", cmd.PersistentFlags().Lookup("traefik_domain")); err != nil {
|
||||
return err
|
||||
@@ -90,6 +103,9 @@ func (s *Room) Set() {
|
||||
s.EprMax = max
|
||||
}
|
||||
|
||||
s.NekoImage = viper.GetString("neko_image")
|
||||
s.InstanceName = viper.GetString("instance_name")
|
||||
|
||||
s.TraefikDomain = viper.GetString("traefik_domain")
|
||||
s.TraefikEntrypoint = viper.GetString("traefik_entrypoint")
|
||||
s.TraefikCertresolver = viper.GetString("traefik_certresolver")
|
||||
|
||||
@@ -15,8 +15,8 @@ func (manager *RoomManagerCtx) listContainers() ([]dockerTypes.Container, error)
|
||||
|
||||
result := []dockerTypes.Container{}
|
||||
for _, container := range containers {
|
||||
val, ok := container.Labels["m1k1o.neko_rooms.canary"]
|
||||
if !ok || val != labelCanary {
|
||||
val, ok := container.Labels["m1k1o.neko_rooms.instance"]
|
||||
if !ok || val != manager.config.InstanceName {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ func (manager *RoomManagerCtx) inspectContainer(id string) (*dockerTypes.Contain
|
||||
return nil, err
|
||||
}
|
||||
|
||||
val, ok := container.Config.Labels["m1k1o.neko_rooms.canary"]
|
||||
if !ok || val != labelCanary {
|
||||
val, ok := container.Config.Labels["m1k1o.neko_rooms.instance"]
|
||||
if !ok || val != manager.config.InstanceName {
|
||||
return nil, fmt.Errorf("This container does not belong to neko_rooms.")
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
nekoImage = "m1k1o/neko:latest"
|
||||
containerPrefix = "neko-room-"
|
||||
frontendPort = 8080
|
||||
labelCanary = "m1k1o-neko-rooms"
|
||||
)
|
||||
|
||||
func New(config *config.Room) *RoomManagerCtx {
|
||||
@@ -122,7 +119,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
|
||||
exposedPorts[portKey] = struct{}{}
|
||||
}
|
||||
|
||||
containerName := containerPrefix + roomName
|
||||
containerName := manager.config.InstanceName + "-" + roomName
|
||||
|
||||
urlProto := "http"
|
||||
if manager.config.TraefikCertresolver != "" {
|
||||
@@ -131,11 +128,11 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
|
||||
|
||||
labels := map[string]string{
|
||||
// Set internal labels
|
||||
"m1k1o.neko_rooms.name": roomName,
|
||||
"m1k1o.neko_rooms.url": urlProto + "://" + manager.config.TraefikDomain + "/" + roomName + "/",
|
||||
"m1k1o.neko_rooms.canary": labelCanary,
|
||||
"m1k1o.neko_rooms.epr.min": fmt.Sprintf("%d", epr.Min),
|
||||
"m1k1o.neko_rooms.epr.max": fmt.Sprintf("%d", epr.Max),
|
||||
"m1k1o.neko_rooms.name": roomName,
|
||||
"m1k1o.neko_rooms.url": urlProto + "://" + manager.config.TraefikDomain + "/" + roomName + "/",
|
||||
"m1k1o.neko_rooms.instance": manager.config.InstanceName,
|
||||
"m1k1o.neko_rooms.epr.min": fmt.Sprintf("%d", epr.Min),
|
||||
"m1k1o.neko_rooms.epr.max": fmt.Sprintf("%d", epr.Max),
|
||||
|
||||
// Set traefik labels
|
||||
"traefik.enable": "true",
|
||||
@@ -168,7 +165,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
|
||||
fmt.Sprintf("NEKO_NAT1TO1=%s", strings.Join(manager.config.NAT1To1IPs, ",")),
|
||||
}, settings.ToEnv()...),
|
||||
// Name of the image as it was passed by the operator (e.g. could be symbolic)
|
||||
Image: nekoImage,
|
||||
Image: manager.config.NekoImage,
|
||||
// List of labels set to this container
|
||||
Labels: labels,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user