Make flag names easier to understand

Now you specify a role instead of controlling the internal behaviour
This commit is contained in:
Bryan Boreham
2018-10-11 18:10:39 +00:00
parent 1279a02b7d
commit 78eaf93c21
2 changed files with 18 additions and 4 deletions

View File

@@ -124,7 +124,7 @@ type probeFlags struct {
criEndpoint string
kubernetesEnabled bool
kubernetesTagOnly bool
kubernetesRole string
kubernetesNodeName string
kubernetesClientConfig kubernetes.ClientConfig
kubernetesKubeletPort uint
@@ -315,7 +315,7 @@ func setupFlags(flags *flags) {
// K8s
flag.BoolVar(&flags.probe.kubernetesEnabled, "probe.kubernetes", false, "collect kubernetes-related attributes for containers")
flag.BoolVar(&flags.probe.kubernetesTagOnly, "probe.kubernetes-tag", false, "tag containers with kubernetes parents")
flag.StringVar(&flags.probe.kubernetesRole, "probe.kubernetes.role", "", "host, cluster or blank for everything")
flag.StringVar(&flags.probe.kubernetesClientConfig.Server, "probe.kubernetes.api", "", "The address and port of the Kubernetes API server (deprecated in favor of equivalent probe.kubernetes.server)")
flag.StringVar(&flags.probe.kubernetesClientConfig.CertificateAuthority, "probe.kubernetes.certificate-authority", "", "Path to a cert. file for the certificate authority")
flag.StringVar(&flags.probe.kubernetesClientConfig.ClientCertificate, "probe.kubernetes.client-certificate", "", "Path to a client certificate file for TLS")

View File

@@ -41,6 +41,9 @@ import (
const (
versionCheckPeriod = 6 * time.Hour
defaultServiceHost = "https://cloud.weave.works.:443"
kubernetesRoleHost = "host"
kubernetesRoleCluster = "cluster"
)
var (
@@ -230,6 +233,17 @@ func probeMain(flags probeFlags, targets []appclient.Target) {
defer endpointReporter.Stop()
p.AddReporter(endpointReporter)
switch flags.kubernetesRole {
case "": // nothing special
case kubernetesRoleHost:
flags.kubernetesEnabled = true
case kubernetesRoleCluster:
flags.kubernetesKubeletPort = 0
flags.kubernetesEnabled = true
default:
log.Warnf("unrecognized --probe.kubernetes.role: %s", flags.kubernetesRole)
}
if flags.dockerEnabled {
// Don't add the bridge in Kubernetes since container IPs are global and
// shouldn't be scoped
@@ -267,7 +281,7 @@ func probeMain(flags probeFlags, targets []appclient.Target) {
}
}
if flags.kubernetesEnabled {
if flags.kubernetesEnabled && flags.kubernetesRole != kubernetesRoleHost {
if client, err := kubernetes.NewClient(flags.kubernetesClientConfig); err == nil {
defer client.Stop()
reporter := kubernetes.NewReporter(client, clients, probeID, hostID, p, handlerRegistry, flags.kubernetesNodeName, flags.kubernetesKubeletPort)
@@ -279,7 +293,7 @@ func probeMain(flags probeFlags, targets []appclient.Target) {
}
}
if flags.kubernetesEnabled || flags.kubernetesTagOnly {
if flags.kubernetesEnabled {
p.AddTagger(&kubernetes.Tagger{})
}