Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
1d478936
Commit
1d478936
authored
Sep 29, 2017
by
Daneyon Hansen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adds Support for Configurable Kubeadm Probes.
parent
92952cfe
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
241 additions
and
32 deletions
+241
-32
manifests.go
cmd/kubeadm/app/phases/controlplane/manifests.go
+3
-3
local.go
cmd/kubeadm/app/phases/etcd/local.go
+1
-1
BUILD
cmd/kubeadm/app/util/staticpod/BUILD
+3
-0
utils.go
cmd/kubeadm/app/util/staticpod/utils.go
+75
-3
utils_test.go
cmd/kubeadm/app/util/staticpod/utils_test.go
+159
-25
No files found.
cmd/kubeadm/app/phases/controlplane/manifests.go
View file @
1d478936
...
@@ -78,7 +78,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
...
@@ -78,7 +78,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeAPIServer
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeAPIServer
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Command
:
getAPIServerCommand
(
cfg
,
k8sVersion
),
Command
:
getAPIServerCommand
(
cfg
,
k8sVersion
),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeAPIServer
)),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeAPIServer
)),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
int
(
cfg
.
API
.
BindPort
),
"/healthz"
,
v1
.
URISchemeHTTPS
),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
cfg
,
kubeadmconstants
.
KubeAPIServer
,
int
(
cfg
.
API
.
BindPort
),
"/healthz"
,
v1
.
URISchemeHTTPS
),
Resources
:
staticpodutil
.
ComponentResources
(
"250m"
),
Resources
:
staticpodutil
.
ComponentResources
(
"250m"
),
Env
:
getProxyEnvVars
(),
Env
:
getProxyEnvVars
(),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeAPIServer
)),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeAPIServer
)),
...
@@ -87,7 +87,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
...
@@ -87,7 +87,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeControllerManager
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeControllerManager
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Command
:
getControllerManagerCommand
(
cfg
,
k8sVersion
),
Command
:
getControllerManagerCommand
(
cfg
,
k8sVersion
),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeControllerManager
)),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeControllerManager
)),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
10252
,
"/healthz"
,
v1
.
URISchemeHTTP
),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
cfg
,
kubeadmconstants
.
KubeControllerManager
,
10252
,
"/healthz"
,
v1
.
URISchemeHTTP
),
Resources
:
staticpodutil
.
ComponentResources
(
"200m"
),
Resources
:
staticpodutil
.
ComponentResources
(
"200m"
),
Env
:
getProxyEnvVars
(),
Env
:
getProxyEnvVars
(),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeControllerManager
)),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeControllerManager
)),
...
@@ -96,7 +96,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
...
@@ -96,7 +96,7 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeScheduler
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
KubeScheduler
,
cfg
.
GetControlPlaneImageRepository
(),
cfg
.
KubernetesVersion
,
cfg
.
UnifiedControlPlaneImage
),
Command
:
getSchedulerCommand
(
cfg
),
Command
:
getSchedulerCommand
(
cfg
),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeScheduler
)),
VolumeMounts
:
staticpodutil
.
VolumeMountMapToSlice
(
mounts
.
GetVolumeMounts
(
kubeadmconstants
.
KubeScheduler
)),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
10251
,
"/healthz"
,
v1
.
URISchemeHTTP
),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
cfg
,
kubeadmconstants
.
KubeScheduler
,
10251
,
"/healthz"
,
v1
.
URISchemeHTTP
),
Resources
:
staticpodutil
.
ComponentResources
(
"100m"
),
Resources
:
staticpodutil
.
ComponentResources
(
"100m"
),
Env
:
getProxyEnvVars
(),
Env
:
getProxyEnvVars
(),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeScheduler
)),
},
mounts
.
GetVolumes
(
kubeadmconstants
.
KubeScheduler
)),
...
...
cmd/kubeadm/app/phases/etcd/local.go
View file @
1d478936
...
@@ -59,7 +59,7 @@ func GetEtcdPodSpec(cfg *kubeadmapi.MasterConfiguration) v1.Pod {
...
@@ -59,7 +59,7 @@ func GetEtcdPodSpec(cfg *kubeadmapi.MasterConfiguration) v1.Pod {
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
Etcd
,
cfg
.
ImageRepository
,
""
,
cfg
.
Etcd
.
Image
),
Image
:
images
.
GetCoreImage
(
kubeadmconstants
.
Etcd
,
cfg
.
ImageRepository
,
""
,
cfg
.
Etcd
.
Image
),
// Mount the etcd datadir path read-write so etcd can store data in a more persistent manner
// Mount the etcd datadir path read-write so etcd can store data in a more persistent manner
VolumeMounts
:
[]
v1
.
VolumeMount
{
staticpodutil
.
NewVolumeMount
(
etcdVolumeName
,
cfg
.
Etcd
.
DataDir
,
false
)},
VolumeMounts
:
[]
v1
.
VolumeMount
{
staticpodutil
.
NewVolumeMount
(
etcdVolumeName
,
cfg
.
Etcd
.
DataDir
,
false
)},
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
2379
,
"/health"
,
v1
.
URISchemeHTTP
),
LivenessProbe
:
staticpodutil
.
ComponentProbe
(
cfg
,
kubeadmconstants
.
Etcd
,
2379
,
"/health"
,
v1
.
URISchemeHTTP
),
},
etcdMounts
)
},
etcdMounts
)
}
}
...
...
cmd/kubeadm/app/util/staticpod/BUILD
View file @
1d478936
...
@@ -12,6 +12,8 @@ go_test(
...
@@ -12,6 +12,8 @@ go_test(
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod",
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod",
library = ":go_default_library",
library = ":go_default_library",
deps = [
deps = [
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
...
@@ -23,6 +25,7 @@ go_library(
...
@@ -23,6 +25,7 @@ go_library(
srcs = ["utils.go"],
srcs = ["utils.go"],
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod",
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod",
deps = [
deps = [
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/util:go_default_library",
"//cmd/kubeadm/app/util:go_default_library",
"//pkg/kubelet/types:go_default_library",
"//pkg/kubelet/types:go_default_library",
...
...
cmd/kubeadm/app/util/staticpod/utils.go
View file @
1d478936
...
@@ -19,17 +19,34 @@ package staticpod
...
@@ -19,17 +19,34 @@ package staticpod
import
(
import
(
"fmt"
"fmt"
"io/ioutil"
"io/ioutil"
"net"
"net/url"
"os"
"os"
"strings"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/intstr"
kubeadmapi
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmconstants
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
kubeadmconstants
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/util"
"k8s.io/kubernetes/cmd/kubeadm/app/util"
kubetypes
"k8s.io/kubernetes/pkg/kubelet/types"
kubetypes
"k8s.io/kubernetes/pkg/kubelet/types"
)
)
const
(
// kubeControllerManagerAddressArg represents the address argument of the kube-controller-manager configuration.
kubeControllerManagerAddressArg
=
"address"
// kubeSchedulerAddressArg represents the address argument of the kube-scheduler configuration.
kubeSchedulerAddressArg
=
"address"
// etcdListenClientURLsArg represents the listen-client-urls argument of the etcd configuration.
etcdListenClientURLsArg
=
"listen-client-urls"
)
// ComponentPod returns a Pod object from the container and volume specifications
// ComponentPod returns a Pod object from the container and volume specifications
func
ComponentPod
(
container
v1
.
Container
,
volumes
map
[
string
]
v1
.
Volume
)
v1
.
Pod
{
func
ComponentPod
(
container
v1
.
Container
,
volumes
map
[
string
]
v1
.
Volume
)
v1
.
Pod
{
return
v1
.
Pod
{
return
v1
.
Pod
{
...
@@ -63,12 +80,11 @@ func ComponentResources(cpu string) v1.ResourceRequirements {
...
@@ -63,12 +80,11 @@ func ComponentResources(cpu string) v1.ResourceRequirements {
}
}
// ComponentProbe is a helper function building a ready v1.Probe object from some simple parameters
// ComponentProbe is a helper function building a ready v1.Probe object from some simple parameters
func
ComponentProbe
(
port
int
,
path
string
,
scheme
v1
.
URIScheme
)
*
v1
.
Probe
{
func
ComponentProbe
(
cfg
*
kubeadmapi
.
MasterConfiguration
,
componentName
string
,
port
int
,
path
string
,
scheme
v1
.
URIScheme
)
*
v1
.
Probe
{
return
&
v1
.
Probe
{
return
&
v1
.
Probe
{
Handler
:
v1
.
Handler
{
Handler
:
v1
.
Handler
{
HTTPGet
:
&
v1
.
HTTPGetAction
{
HTTPGet
:
&
v1
.
HTTPGetAction
{
// Host has to be set to "127.0.0.1" here due to that our static Pods are on the host's network
Host
:
GetProbeAddress
(
cfg
,
componentName
),
Host
:
"127.0.0.1"
,
Path
:
path
,
Path
:
path
,
Port
:
intstr
.
FromInt
(
port
),
Port
:
intstr
.
FromInt
(
port
),
Scheme
:
scheme
,
Scheme
:
scheme
,
...
@@ -162,3 +178,59 @@ func WriteStaticPodToDisk(componentName, manifestDir string, pod v1.Pod) error {
...
@@ -162,3 +178,59 @@ func WriteStaticPodToDisk(componentName, manifestDir string, pod v1.Pod) error {
return
nil
return
nil
}
}
// GetProbeAddress returns an IP address or 127.0.0.1 to use for liveness probes
// in static pod manifests.
func
GetProbeAddress
(
cfg
*
kubeadmapi
.
MasterConfiguration
,
componentName
string
)
string
{
switch
{
case
componentName
==
kubeadmconstants
.
KubeAPIServer
:
if
cfg
.
API
.
AdvertiseAddress
!=
""
{
return
cfg
.
API
.
AdvertiseAddress
}
case
componentName
==
kubeadmconstants
.
KubeControllerManager
:
if
addr
,
exists
:=
cfg
.
ControllerManagerExtraArgs
[
kubeControllerManagerAddressArg
];
exists
{
return
addr
}
case
componentName
==
kubeadmconstants
.
KubeScheduler
:
if
addr
,
exists
:=
cfg
.
SchedulerExtraArgs
[
kubeSchedulerAddressArg
];
exists
{
return
addr
}
case
componentName
==
kubeadmconstants
.
Etcd
:
if
cfg
.
Etcd
.
ExtraArgs
!=
nil
{
if
arg
,
exists
:=
cfg
.
Etcd
.
ExtraArgs
[
etcdListenClientURLsArg
];
exists
{
// Use the first url in the listen-client-urls if multiple url's are specified.
if
strings
.
ContainsAny
(
arg
,
","
)
{
arg
=
strings
.
Split
(
arg
,
","
)[
0
]
}
parsedURL
,
err
:=
url
.
Parse
(
arg
)
if
err
!=
nil
||
parsedURL
.
Hostname
()
==
""
{
break
}
// Return the IP if the URL contains an address instead of a name.
if
ip
:=
net
.
ParseIP
(
parsedURL
.
Hostname
());
ip
!=
nil
{
return
ip
.
String
()
}
// Use the local resolver to try resolving the name within the URL.
// If the name can not be resolved, return an IPv4 loopback address.
// Otherwise, select the first valid IPv4 address.
// If the name does not resolve to an IPv4 address, select the first valid IPv6 address.
addrs
,
err
:=
net
.
LookupIP
(
parsedURL
.
Hostname
())
if
err
!=
nil
{
break
}
var
ip
net
.
IP
for
_
,
addr
:=
range
addrs
{
if
addr
.
To4
()
!=
nil
{
ip
=
addr
break
}
if
addr
.
To16
()
!=
nil
&&
ip
==
nil
{
ip
=
addr
}
}
return
ip
.
String
()
}
}
}
return
"127.0.0.1"
}
cmd/kubeadm/app/util/staticpod/utils_test.go
View file @
1d478936
...
@@ -24,6 +24,9 @@ import (
...
@@ -24,6 +24,9 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/intstr"
kubeadmapi
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmconstants
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
)
)
func
TestComponentResources
(
t
*
testing
.
T
)
{
func
TestComponentResources
(
t
*
testing
.
T
)
{
...
@@ -37,43 +40,174 @@ func TestComponentResources(t *testing.T) {
...
@@ -37,43 +40,174 @@ func TestComponentResources(t *testing.T) {
func
TestComponentProbe
(
t
*
testing
.
T
)
{
func
TestComponentProbe
(
t
*
testing
.
T
)
{
var
tests
=
[]
struct
{
var
tests
=
[]
struct
{
port
int
name
string
path
string
cfg
*
kubeadmapi
.
MasterConfiguration
scheme
v1
.
URIScheme
component
string
port
int
path
string
scheme
v1
.
URIScheme
expected
string
}{
}{
{
{
port
:
1
,
name
:
"default apiserver advertise address with http"
,
path
:
"foo"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
scheme
:
v1
.
URISchemeHTTP
,
API
:
kubeadmapi
.
API
{
AdvertiseAddress
:
""
,
},
},
component
:
kubeadmconstants
.
KubeAPIServer
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"127.0.0.1"
,
},
{
name
:
"default apiserver advertise address with https"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
API
:
kubeadmapi
.
API
{
AdvertiseAddress
:
""
,
},
},
component
:
kubeadmconstants
.
KubeAPIServer
,
port
:
2
,
path
:
"bar"
,
scheme
:
v1
.
URISchemeHTTPS
,
expected
:
"127.0.0.1"
,
},
{
name
:
"valid ipv4 apiserver advertise address with http"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
API
:
kubeadmapi
.
API
{
AdvertiseAddress
:
"1.2.3.4"
,
},
},
component
:
kubeadmconstants
.
KubeAPIServer
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"1.2.3.4"
,
},
{
name
:
"valid ipv6 apiserver advertise address with http"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
API
:
kubeadmapi
.
API
{
AdvertiseAddress
:
"2001:db8::1"
,
},
},
component
:
kubeadmconstants
.
KubeAPIServer
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"2001:db8::1"
,
},
{
name
:
"valid IPv4 controller-manager probe"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
ControllerManagerExtraArgs
:
map
[
string
]
string
{
"address"
:
"1.2.3.4"
},
},
component
:
kubeadmconstants
.
KubeControllerManager
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"1.2.3.4"
,
},
{
name
:
"valid IPv6 controller-manager probe"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
ControllerManagerExtraArgs
:
map
[
string
]
string
{
"address"
:
"2001:db8::1"
},
},
component
:
kubeadmconstants
.
KubeControllerManager
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"2001:db8::1"
,
},
{
name
:
"valid IPv4 scheduler probe"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
SchedulerExtraArgs
:
map
[
string
]
string
{
"address"
:
"1.2.3.4"
},
},
component
:
kubeadmconstants
.
KubeScheduler
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"1.2.3.4"
,
},
{
name
:
"valid IPv6 scheduler probe"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
SchedulerExtraArgs
:
map
[
string
]
string
{
"address"
:
"2001:db8::1"
},
},
component
:
kubeadmconstants
.
KubeScheduler
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"2001:db8::1"
,
},
{
name
:
"valid etcd probe using listen-client-urls IPv4 addresses"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
Etcd
:
kubeadmapi
.
Etcd
{
ExtraArgs
:
map
[
string
]
string
{
"listen-client-urls"
:
"http://1.2.3.4:2379,http://4.3.2.1:2379"
},
},
},
component
:
kubeadmconstants
.
Etcd
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"1.2.3.4"
,
},
{
name
:
"valid etcd probe using listen-client-urls IPv6 addresses"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
Etcd
:
kubeadmapi
.
Etcd
{
ExtraArgs
:
map
[
string
]
string
{
"listen-client-urls"
:
"http://[2001:db8::1]:2379,http://[2001:db8::2]:2379"
},
},
},
component
:
kubeadmconstants
.
Etcd
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"2001:db8::1"
,
},
},
{
{
port
:
2
,
name
:
"valid IPv4 etcd probe using hostname for listen-client-urls"
,
path
:
"bar"
,
cfg
:
&
kubeadmapi
.
MasterConfiguration
{
scheme
:
v1
.
URISchemeHTTPS
,
Etcd
:
kubeadmapi
.
Etcd
{
ExtraArgs
:
map
[
string
]
string
{
"listen-client-urls"
:
"http://localhost:2379"
},
},
},
component
:
kubeadmconstants
.
Etcd
,
port
:
1
,
path
:
"foo"
,
scheme
:
v1
.
URISchemeHTTP
,
expected
:
"127.0.0.1"
,
},
},
}
}
for
_
,
rt
:=
range
tests
{
for
_
,
rt
:=
range
tests
{
actual
:=
ComponentProbe
(
rt
.
port
,
rt
.
path
,
rt
.
scheme
)
actual
:=
ComponentProbe
(
rt
.
cfg
,
rt
.
component
,
rt
.
port
,
rt
.
path
,
rt
.
scheme
)
if
actual
.
Handler
.
HTTPGet
.
Host
!=
rt
.
expected
{
t
.
Errorf
(
"%s test case failed:
\n\t
expected: %s
\n\t
actual: %s"
,
rt
.
name
,
rt
.
expected
,
actual
.
Handler
.
HTTPGet
.
Host
)
}
if
actual
.
Handler
.
HTTPGet
.
Port
!=
intstr
.
FromInt
(
rt
.
port
)
{
if
actual
.
Handler
.
HTTPGet
.
Port
!=
intstr
.
FromInt
(
rt
.
port
)
{
t
.
Errorf
(
t
.
Errorf
(
"%s test case failed:
\n\t
expected: %v
\n\t
actual: %v"
,
"failed componentProbe:
\n\t
expected: %v
\n\t
actual: %v"
,
rt
.
name
,
rt
.
port
,
rt
.
port
,
actual
.
Handler
.
HTTPGet
.
Port
)
actual
.
Handler
.
HTTPGet
.
Port
,
)
}
}
if
actual
.
Handler
.
HTTPGet
.
Path
!=
rt
.
path
{
if
actual
.
Handler
.
HTTPGet
.
Path
!=
rt
.
path
{
t
.
Errorf
(
t
.
Errorf
(
"%s test case failed:
\n\t
expected: %s
\n\t
actual: %s"
,
"failed componentProbe:
\n\t
expected: %s
\n\t
actual: %s"
,
rt
.
name
,
rt
.
path
,
rt
.
path
,
actual
.
Handler
.
HTTPGet
.
Path
)
actual
.
Handler
.
HTTPGet
.
Path
,
)
}
}
if
actual
.
Handler
.
HTTPGet
.
Scheme
!=
rt
.
scheme
{
if
actual
.
Handler
.
HTTPGet
.
Scheme
!=
rt
.
scheme
{
t
.
Errorf
(
t
.
Errorf
(
"%s test case failed:
\n\t
expected: %v
\n\t
actual: %v"
,
"failed componentProbe:
\n\t
expected: %v
\n\t
actual: %v"
,
rt
.
name
,
rt
.
scheme
,
rt
.
scheme
,
actual
.
Handler
.
HTTPGet
.
Scheme
)
actual
.
Handler
.
HTTPGet
.
Scheme
,
)
}
}
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment