makes probe server configurable #3159

This commit includes the following changes:

* Updates ```helm init``` to include a configurable probe server port
* Adds Option for probe server port parameter
* Updates Tiller deployment to use configurable probe server port.
pull/3440/head
Gavin Mead 8 years ago committed by gavinmead
parent f296e37782
commit 7f561f5909

@ -139,6 +139,7 @@ func newInitCmd(out io.Writer) *cobra.Command {
f.VarP(&i.opts.Output, "output", "o", "skip installation and output Tiller's manifest in specified format (json or yaml)")
f.StringArrayVar(&i.opts.Values, "override", []string{}, "override values for the Tiller Deployment manifest (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.IntVar(&i.opts.ProbeServerPort, "probe-server-port", 0, "overrides the default probe server port for Tiller")
return cmd
}

@ -197,7 +197,7 @@ func generateDeployment(opts *Options) (*v1beta1.Deployment, error) {
ImagePullPolicy: opts.pullPolicy(),
Ports: []v1.ContainerPort{
{ContainerPort: 44134, Name: "tiller"},
{ContainerPort: 44135, Name: "http"},
{ContainerPort: opts.probeServerPort(), Name: "http"},
},
Env: []v1.EnvVar{
{Name: "TILLER_NAMESPACE", Value: opts.Namespace},
@ -207,7 +207,7 @@ func generateDeployment(opts *Options) (*v1beta1.Deployment, error) {
Handler: v1.Handler{
HTTPGet: &v1.HTTPGetAction{
Path: "/liveness",
Port: intstr.FromInt(44135),
Port: intstr.FromInt(int(opts.probeServerPort())),
},
},
InitialDelaySeconds: 1,
@ -217,7 +217,7 @@ func generateDeployment(opts *Options) (*v1beta1.Deployment, error) {
Handler: v1.Handler{
HTTPGet: &v1.HTTPGetAction{
Path: "/readiness",
Port: intstr.FromInt(44135),
Port: intstr.FromInt(int(opts.probeServerPort())),
},
},
InitialDelaySeconds: 1,

@ -94,6 +94,11 @@ type Options struct {
// Set merges additional values into the Tiller Deployment manifest.
Values []string
// ProbeServerPort sets the Readiness/Liveness Probes container port for Tiller
//
// Less than or equal to 0 means it will continue to the use the default 44135.
ProbeServerPort int
}
func (opts *Options) selectImage() string {
@ -134,6 +139,14 @@ func (opts *Options) valuesMap(m map[string]interface{}) (map[string]interface{}
return m, nil
}
func (opts *Options) probeServerPort() int32 {
probeServerPort := int32(44135)
if opts.ProbeServerPort > 0 {
probeServerPort = int32(opts.ProbeServerPort)
}
return probeServerPort
}
// OutputFormat defines valid values for init output (json, yaml)
type OutputFormat string

@ -63,7 +63,6 @@ const (
storageConfigMap = "configmap"
storageSecret = "secret"
probeAddr = ":44135"
traceAddr = ":44136"
// defaultMaxHistory sets the maximum number of releases to 0: unlimited
@ -72,6 +71,8 @@ const (
var (
grpcAddr = flag.String("listen", ":44134", "address:port to listen on")
probeAddr = flag.String("probe-address", ":44135", "address:port to listen on for probe server")
probeEnable = flag.Bool("probe", true, "enable probe server")
enableTracing = flag.Bool("trace", false, "enable rpc tracing")
store = flag.String("storage", storageConfigMap, "storage driver to use. One of 'configmap', 'memory', or 'secret'")
remoteReleaseModules = flag.Bool("experimental-release", false, "enable experimental release modules")
@ -182,7 +183,13 @@ func start() {
logger.Printf("Starting Tiller %s (tls=%t)", version.GetVersion(), *tlsEnable || *tlsVerify)
logger.Printf("GRPC listening on %s", *grpcAddr)
logger.Printf("Probes listening on %s", probeAddr)
if *probeEnable {
logger.Printf("Probes listening on %s", *probeAddr)
} else {
logger.Printf("Probes disabled")
}
logger.Printf("Storage driver is %s", env.Releases.Name())
logger.Printf("Max history per release is %d", *maxHistory)
@ -201,17 +208,20 @@ func start() {
}
}()
go func() {
mux := newProbesMux()
if *probeEnable {
go func() {
mux := newProbesMux()
// Register gRPC server to prometheus to initialized matrix
goprom.Register(rootServer)
addPrometheusHandler(mux)
// Register gRPC server to prometheus to initialized matrix
goprom.Register(rootServer)
addPrometheusHandler(mux)
if err := http.ListenAndServe(probeAddr, mux); err != nil {
probeErrCh <- err
}
}()
if err := http.ListenAndServe(*probeAddr, mux); err != nil {
probeErrCh <- err
}
}()
}
healthSrv.SetServingStatus("Tiller", healthpb.HealthCheckResponse_SERVING)

Loading…
Cancel
Save