@@ -134,8 +134,11 @@ func loadConfig(configPath string) (*config, error) {
134134
135135func main () {
136136 var configPath string
137+ var apiOnly , dnsOnly bool
137138
138139 flag .StringVar (& configPath , "config" , "" , "configuration file path" )
140+ flag .BoolVar (& apiOnly , "api-only" , false , "run only the API registrar" )
141+ flag .BoolVar (& dnsOnly , "dns-only" , false , "run only the DNS registrar" )
139142 flag .Parse ()
140143
141144 if configPath == "" {
@@ -189,22 +192,32 @@ func main() {
189192 log .Fatal (err )
190193 }
191194
192- dnsPrivKey , err := readKey (conf .DNSPrivkeyPath )
193- if err != nil {
194- log .Fatal (err )
195- }
195+ regServers := []regServer {}
196+ var dnsRegServer * dnsregserver.DNSRegServer
197+ var apiRegServer * apiregserver.APIRegServer
196198
197- dnsRegServer , err := dnsregserver .NewDNSRegServer (conf .Domain , conf .DNSListenAddr , dnsPrivKey , processor , conf .latestClientConf .GetGeneration (), log .WithField ("registrar" , "DNS" ), metrics )
198- if err != nil {
199- log .Fatal (err )
200- }
199+ if ! apiOnly {
200+ dnsPrivKey , err := readKey (conf .DNSPrivkeyPath )
201+ if err != nil {
202+ log .Fatal (err )
203+ }
201204
202- apiRegServer , err := apiregserver .NewAPIRegServer (conf .APIPort , processor , conf .latestClientConf , log .WithField ("registrar" , "API" ), logClientIP , metrics )
203- if err != nil {
204- log .Fatal (err )
205+ dnsRegServer , err = dnsregserver .NewDNSRegServer (conf .Domain , conf .DNSListenAddr , dnsPrivKey , processor , conf .latestClientConf .GetGeneration (), log .WithField ("registrar" , "DNS" ), metrics )
206+ if err != nil {
207+ log .Fatal (err )
208+ }
209+
210+ regServers = append (regServers , dnsRegServer )
205211 }
206212
207- regServers := []regServer {dnsRegServer , apiRegServer }
213+ if ! dnsOnly {
214+ apiRegServer , err = apiregserver .NewAPIRegServer (conf .APIPort , processor , conf .latestClientConf , log .WithField ("registrar" , "API" ), logClientIP , metrics )
215+ if err != nil {
216+ log .Fatal (err )
217+ }
218+
219+ regServers = append (regServers , apiRegServer )
220+ }
208221
209222 signalChan := make (chan os.Signal , 1 )
210223
@@ -227,8 +240,13 @@ func main() {
227240 if err != nil {
228241 log .Errorf ("failed to reload phantom subnets - aborting reload: %v" , err )
229242 }
230- apiRegServer .NewClientConf (conf .latestClientConf )
231- dnsRegServer .UpdateLatestCCGen (conf .latestClientConf .GetGeneration ())
243+ if ! dnsOnly && apiRegServer != nil {
244+ apiRegServer .NewClientConf (conf .latestClientConf )
245+ }
246+
247+ if ! apiOnly && dnsRegServer != nil {
248+ dnsRegServer .UpdateLatestCCGen (conf .latestClientConf .GetGeneration ())
249+ }
232250 }
233251 }
234252 }
0 commit comments