mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-02 22:51:34 -06:00
add instance labels.
This commit is contained in:
@@ -24,8 +24,9 @@ type Room struct {
|
||||
|
||||
MountsWhitelist []string
|
||||
|
||||
InstanceName string
|
||||
InstanceUrl string
|
||||
InstanceName string
|
||||
InstanceUrl string
|
||||
InstanceLabels []string
|
||||
|
||||
TraefikDomain string
|
||||
TraefikEntrypoint string
|
||||
@@ -95,6 +96,11 @@ func (Room) Init(cmd *cobra.Command) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().StringSlice("instance.labels", []string{}, "additional instance labels appended to a room")
|
||||
if err := viper.BindPFlag("instance.labels", cmd.PersistentFlags().Lookup("instance.labels")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Traefik
|
||||
|
||||
cmd.PersistentFlags().String("traefik.domain", "", "traefik: domain on which will be container hosted (if empty or '*', match all; for neko-rooms as subdomain use '*.domain.tld')")
|
||||
@@ -184,6 +190,7 @@ func (s *Room) Set() {
|
||||
}
|
||||
|
||||
s.InstanceUrl = viper.GetString("instance.url")
|
||||
s.InstanceLabels = viper.GetStringSlice("instance.labels")
|
||||
|
||||
s.TraefikDomain = viper.GetString("traefik.domain")
|
||||
s.TraefikEntrypoint = viper.GetString("traefik.entrypoint")
|
||||
|
||||
@@ -239,6 +239,23 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
|
||||
labels[k] = v
|
||||
}
|
||||
|
||||
// add custom instance labels
|
||||
for _, label := range manager.config.InstanceLabels {
|
||||
// replace dynamic values in labels
|
||||
label = strings.Replace(label, "{containerName}", containerName, 1)
|
||||
label = strings.Replace(label, "{roomName}", roomName, 1)
|
||||
label = strings.Replace(label, "{traefikEntrypoint}", manager.config.TraefikEntrypoint, 1)
|
||||
|
||||
v := strings.SplitN(label, ":", 2)
|
||||
if len(v) != 2 {
|
||||
manager.logger.Warn().Str("label", label).Msg("invalid instance label")
|
||||
continue
|
||||
}
|
||||
|
||||
key, val := v[0], v[1]
|
||||
labels[key] = val
|
||||
}
|
||||
|
||||
//
|
||||
// Set environment variables
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user