@@ -4,11 +4,10 @@ Copyright © 2024 NAME HERE <EMAIL ADDRESS>
4
4
package initconfig
5
5
6
6
import (
7
- "embed"
8
7
"fmt"
9
- "html/template"
10
8
"os"
11
9
10
+ "github.com/observeinc/observe-agent/internal/config"
12
11
"github.com/observeinc/observe-agent/internal/root"
13
12
"github.com/spf13/cobra"
14
13
"github.com/spf13/viper"
25
24
host_monitoring_logs_include []string
26
25
host_monitoring_metrics_host_enabled bool
27
26
host_monitoring_metrics_process_enabled bool
28
- //go:embed observe-agent.tmpl
29
- configTemplateFS embed.FS
30
27
)
31
28
32
- const configTemplate = "observe-agent.tmpl"
33
-
34
29
type FlatAgentConfig struct {
35
30
Token string
36
31
ObserveURL string
@@ -80,10 +75,11 @@ func NewConfigureCmd(v *viper.Viper) *cobra.Command {
80
75
defer f .Close ()
81
76
fmt .Printf ("Writing configuration values to %s...\n \n " , outputPath )
82
77
}
83
- t := template . Must ( template . New ( configTemplate ). ParseFS ( configTemplateFS , configTemplate ) )
84
- if err := t . ExecuteTemplate ( f , configTemplate , configValues ); err != nil {
78
+ agentConfig , err := config . AgentConfigFromViper ( v )
79
+ if err != nil {
85
80
return err
86
81
}
82
+ writeConfigFile (f , agentConfig , v .GetBool ("include-defaults" ))
87
83
return nil
88
84
},
89
85
}
@@ -98,24 +94,49 @@ func init() {
98
94
99
95
func RegisterConfigFlags (cmd * cobra.Command , v * viper.Viper ) {
100
96
cmd .Flags ().StringVarP (& config_path , "config_path" , "" , "" , "Path to write config output file to" )
101
- cmd .PersistentFlags ().Bool ("print" , false , "Print the configuration to stdout instead of writing to a file" )
97
+ cmd .Flags ().Bool ("print" , false , "Print the configuration to stdout instead of writing to a file" )
98
+ v .BindPFlag ("print" , cmd .Flags ().Lookup ("print" ))
99
+ cmd .Flags ().Bool ("include-defaults" , false , "Include the names and default values for unset config options." )
100
+ v .BindPFlag ("include-defaults" , cmd .Flags ().Lookup ("include-defaults" ))
101
+
102
102
cmd .PersistentFlags ().StringVar (& token , "token" , "" , "Observe token" )
103
- cmd .PersistentFlags ().StringVar (& observe_url , "observe_url" , "" , "Observe data collection url" )
104
- cmd .PersistentFlags ().StringSliceVar (& cloud_resource_detectors , "cloud_resource_detectors" , []string {}, "The cloud environments from which to detect resources" )
105
- cmd .PersistentFlags ().BoolVar (& self_monitoring_enabled , "self_monitoring::enabled" , true , "Enable self monitoring" )
106
- cmd .PersistentFlags ().BoolVar (& host_monitoring_enabled , "host_monitoring::enabled" , true , "Enable host monitoring" )
107
- cmd .PersistentFlags ().BoolVar (& host_monitoring_logs_enabled , "host_monitoring::logs::enabled" , true , "Enable host monitoring logs" )
108
- cmd .PersistentFlags ().StringSliceVar (& host_monitoring_logs_include , "host_monitoring::logs::include" , nil , "Set host monitoring log include paths" )
109
- cmd .PersistentFlags ().BoolVar (& host_monitoring_metrics_host_enabled , "host_monitoring::metrics::host::enabled" , true , "Enable host monitoring host metrics" )
110
- cmd .PersistentFlags ().BoolVar (& host_monitoring_metrics_process_enabled , "host_monitoring::metrics::process::enabled" , false , "Enable host monitoring process metrics" )
111
- v .BindPFlag ("print" , cmd .PersistentFlags ().Lookup ("print" ))
103
+ cmd .PersistentFlags ().MarkDeprecated ("token" , "Use env var `TOKEN` instead" )
112
104
v .BindPFlag ("token" , cmd .PersistentFlags ().Lookup ("token" ))
105
+
106
+ cmd .PersistentFlags ().StringVar (& observe_url , "observe_url" , "" , "Observe data collection url" )
107
+ cmd .PersistentFlags ().MarkDeprecated ("observe_url" , "Use env var `OBSERVE_URL` instead" )
113
108
v .BindPFlag ("observe_url" , cmd .PersistentFlags ().Lookup ("observe_url" ))
109
+
110
+ cmd .PersistentFlags ().StringSliceVar (& cloud_resource_detectors , "cloud_resource_detectors" , []string {}, "The cloud environments from which to detect resources" )
111
+ cmd .PersistentFlags ().MarkDeprecated ("cloud_resource_detectors" , "Use env var `CLOUD_RESOURCE_DETECTORS` instead" )
114
112
v .BindPFlag ("cloud_resource_detectors" , cmd .PersistentFlags ().Lookup ("cloud_resource_detectors" ))
113
+
114
+ cmd .PersistentFlags ().BoolVar (& self_monitoring_enabled , "self_monitoring::enabled" , true , "Enable self monitoring" )
115
+ cmd .PersistentFlags ().MarkDeprecated ("self_monitoring::enabled" , "Use env var `SELF_MONITORING::ENABLED` instead" )
115
116
v .BindPFlag ("self_monitoring::enabled" , cmd .PersistentFlags ().Lookup ("self_monitoring::enabled" ))
117
+ v .SetDefault ("self_monitoring::enabled" , true )
118
+
119
+ cmd .PersistentFlags ().BoolVar (& host_monitoring_enabled , "host_monitoring::enabled" , true , "Enable host monitoring" )
120
+ cmd .PersistentFlags ().MarkDeprecated ("host_monitoring::enabled" , "Use env var `HOST_MONITORING::ENABLED` instead" )
116
121
v .BindPFlag ("host_monitoring::enabled" , cmd .PersistentFlags ().Lookup ("host_monitoring::enabled" ))
122
+ v .SetDefault ("host_monitoring::enabled" , true )
123
+
124
+ cmd .PersistentFlags ().BoolVar (& host_monitoring_logs_enabled , "host_monitoring::logs::enabled" , true , "Enable host monitoring logs" )
125
+ cmd .PersistentFlags ().MarkDeprecated ("host_monitoring::logs::enabled" , "Use env var `HOST_MONITORING::LOGS::ENABLED` instead" )
117
126
v .BindPFlag ("host_monitoring::logs::enabled" , cmd .PersistentFlags ().Lookup ("host_monitoring::logs::enabled" ))
127
+ v .SetDefault ("host_monitoring::logs::enabled" , true )
128
+
129
+ cmd .PersistentFlags ().StringSliceVar (& host_monitoring_logs_include , "host_monitoring::logs::include" , nil , "Set host monitoring log include paths" )
130
+ cmd .PersistentFlags ().MarkDeprecated ("host_monitoring::logs::include" , "Use env var `HOST_MONITORING::LOGS::INCLUDE` instead" )
118
131
v .BindPFlag ("host_monitoring::logs::include" , cmd .PersistentFlags ().Lookup ("host_monitoring::logs::include" ))
132
+
133
+ cmd .PersistentFlags ().BoolVar (& host_monitoring_metrics_host_enabled , "host_monitoring::metrics::host::enabled" , true , "Enable host monitoring host metrics" )
134
+ cmd .PersistentFlags ().MarkDeprecated ("host_monitoring::metrics::host::enabled" , "Use env var `HOST_MONITORING::METRICS::HOST::ENABLED` instead" )
119
135
v .BindPFlag ("host_monitoring::metrics::host::enabled" , cmd .PersistentFlags ().Lookup ("host_monitoring::metrics::host::enabled" ))
136
+ v .SetDefault ("host_monitoring::metrics::host::enabled" , true )
137
+
138
+ cmd .PersistentFlags ().BoolVar (& host_monitoring_metrics_process_enabled , "host_monitoring::metrics::process::enabled" , false , "Enable host monitoring process metrics" )
139
+ cmd .PersistentFlags ().MarkDeprecated ("host_monitoring::metrics::process::enabled" , "Use env var `HOST_MONITORING::METRICS::PROCESS::ENABLED` instead" )
120
140
v .BindPFlag ("host_monitoring::metrics::process::enabled" , cmd .PersistentFlags ().Lookup ("host_monitoring::metrics::process::enabled" ))
141
+ v .SetDefault ("host_monitoring::metrics::process::enabled" , false )
121
142
}
0 commit comments