Adding support for communicating with Aurora using TLS.

This commit is contained in:
Renan DelValle 2018-04-26 15:15:42 -07:00
parent 72692b5dd7
commit f4d86536c3
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9
3 changed files with 21 additions and 6 deletions

View file

@ -24,12 +24,18 @@ var username, password, zkAddr, schedAddr string
var env, role, name string
var client realis.Realis
var monitor *realis.Monitor
var insecureSkipVerify bool
var caCertsPath string
var clientKey, clientCert string
func init() {
rootCmd.PersistentFlags().StringVarP(&zkAddr, "zookeeper", "z", "", "Zookeeper node(s) where Aurora stores information.")
rootCmd.PersistentFlags().StringVarP(&username, "username", "u", "", "Username to use for API authentication")
rootCmd.PersistentFlags().StringVarP(&password, "password", "p", "", "Password to use for API authentication")
rootCmd.PersistentFlags().StringVarP(&schedAddr, "scheduler_addr", "s", "", "Aurora Scheduler's address.")
rootCmd.PersistentFlags().StringVarP(&clientKey, "clientKey", "k", "", "Client key to use to connect to Aurora.")
rootCmd.PersistentFlags().StringVarP(&clientCert, "clientCert", "c", "", "Client certificate to use to connect to Aurora.")
rootCmd.PersistentFlags().StringVarP(&caCertsPath, "caCertsPath", "a", "", "CA certificates path to use.")
}
func Execute() {
@ -50,10 +56,19 @@ func connect(cmd *cobra.Command, args []string) {
Jitter: 0.1,
})}
// Prefer zookeeper if both ways of connecting are provided
if zkAddr != "" {
realisOptions = append(realisOptions, realis.ZKUrl(zkAddr))
// Configure Zookeeper to connect
zkOptions := []realis.ZKOpt{ realis.ZKEndpoints(zkAddr), realis.ZKPath("/aurora/scheduler")}
if clientKey != "" || clientCert != "" || caCertsPath != "" {
zkOptions = append(zkOptions, realis.ZKAuroraPortOverride(8081), realis.ZKAuroraSchemeOverride("https"))
realisOptions = append(realisOptions, realis.Certspath(caCertsPath), realis.ClientCerts(clientKey, clientCert))
}
realisOptions = append(realisOptions, realis.ZookeeperOptions(zkOptions...))
} else if schedAddr != "" {
realisOptions = append(realisOptions, realis.SchedulerUrl(schedAddr))
} else {
@ -61,7 +76,6 @@ func connect(cmd *cobra.Command, args []string) {
os.Exit(1)
}
// Connect to Aurora Scheduler and create a client object
client, err = realis.NewRealisClient(realisOptions...)