add instance labels.

This commit is contained in:
Miroslav Šedivý
2022-02-26 19:11:46 +01:00
parent 6f4a9429a8
commit 62b68419de
2 changed files with 26 additions and 2 deletions
+9 -2
View File
@@ -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")
+17
View File
@@ -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
//