Vendor: Update k8s version

Signed-off-by: Michał Żyłowski <michal.zylowski@intel.com>
This commit is contained in:
Michał Żyłowski 2017-02-03 14:41:32 +01:00
parent dfa93414c5
commit 52baf68d50
3756 changed files with 113013 additions and 92675 deletions

View file

@ -140,7 +140,9 @@
"version": "v0.3", "version": "v0.3",
"revision": "909568be09de550ed094403c2bf8a261b5bb730a", "revision": "909568be09de550ed094403c2bf8a261b5bb730a",
"packages": [ "packages": [
"proto" "gogoproto",
"proto",
"sortkeys"
] ]
}, },
{ {
@ -255,7 +257,7 @@
{ {
"name": "github.com/opencontainers/runtime-tools", "name": "github.com/opencontainers/runtime-tools",
"branch": "master", "branch": "master",
"revision": "06e17eef1ab6e13f4f37308a16727510ab81414f", "revision": "2d92f6557e64d4f9a0e799a75fdf153cec13dffa",
"packages": [ "packages": [
"generate" "generate"
] ]
@ -368,8 +370,7 @@
"branch": "master", "branch": "master",
"revision": "21807b270ec15d19215659a5caa08b17f66d6f44", "revision": "21807b270ec15d19215659a5caa08b17f66d6f44",
"packages": [ "packages": [
"pkg/fields", "pkg/fields"
"pkg/selection"
] ]
}, },
{ {
@ -383,7 +384,7 @@
{ {
"name": "k8s.io/kubernetes", "name": "k8s.io/kubernetes",
"branch": "master", "branch": "master",
"revision": "550f8be73aac92c7c23b1783d3db17f8660019f6", "revision": "760d8e98e8f6ad27aaf50b1a030cb9e7b6859aab",
"packages": [ "packages": [
"pkg/fields", "pkg/fields",
"pkg/kubelet/api/v1alpha1/runtime" "pkg/kubelet/api/v1alpha1/runtime"

View file

@ -0,0 +1 @@
../v2s1-invalid-signatures.manifest.json

View file

@ -0,0 +1 @@
../dir-img-valid/signature-1

View file

@ -0,0 +1 @@
../dir-img-valid/manifest.json

View file

@ -0,0 +1 @@
../invalid-blob.signature

View file

@ -0,0 +1 @@
../dir-img-valid/signature-1

View file

@ -0,0 +1 @@
../dir-img-valid/signature-1

View file

@ -0,0 +1 @@
../dir-img-valid/signature-1

View file

@ -0,0 +1 @@
../dir-img-valid/manifest.json

View file

@ -0,0 +1 @@
../dir-img-valid/manifest.json

View file

@ -0,0 +1 @@
../dir-img-valid/signature-1

View file

@ -0,0 +1 @@
../image.manifest.json

View file

@ -0,0 +1 @@
../../../contrib/init/sysvinit-debian/docker.default

View file

@ -0,0 +1 @@
../../../contrib/init/sysvinit-debian/docker

View file

@ -0,0 +1 @@
../../../contrib/init/upstart/docker.conf

View file

@ -0,0 +1 @@
../../../contrib/udev/80-docker.rules

View file

@ -0,0 +1 @@
../../../contrib/init/sysvinit-debian/docker.default

View file

@ -0,0 +1 @@
../../../contrib/init/sysvinit-debian/docker

View file

@ -0,0 +1 @@
../../../contrib/init/upstart/docker.conf

View file

@ -0,0 +1 @@
../../../contrib/udev/80-docker.rules

1
vendor/github.com/docker/docker/project/CONTRIBUTORS.md generated vendored Symbolic link
View file

@ -0,0 +1 @@
../CONTRIBUTING.md

View file

@ -24,7 +24,6 @@ var generateFlags = []cli.Flag{
cli.StringSliceFlag{Name: "bind", Usage: "bind mount directories src:dest[:options...]"}, cli.StringSliceFlag{Name: "bind", Usage: "bind mount directories src:dest[:options...]"},
cli.StringSliceFlag{Name: "cap-add", Usage: "add Linux capabilities"}, cli.StringSliceFlag{Name: "cap-add", Usage: "add Linux capabilities"},
cli.StringSliceFlag{Name: "cap-drop", Usage: "drop Linux capabilities"}, cli.StringSliceFlag{Name: "cap-drop", Usage: "drop Linux capabilities"},
cli.StringFlag{Name: "cgroup", Usage: "cgroup namespace"},
cli.StringFlag{Name: "cgroups-path", Usage: "specify the path to the cgroups"}, cli.StringFlag{Name: "cgroups-path", Usage: "specify the path to the cgroups"},
cli.StringFlag{Name: "cwd", Value: "/", Usage: "current working directory for the process"}, cli.StringFlag{Name: "cwd", Value: "/", Usage: "current working directory for the process"},
cli.BoolFlag{Name: "disable-oom-kill", Usage: "disable OOM Killer"}, cli.BoolFlag{Name: "disable-oom-kill", Usage: "disable OOM Killer"},
@ -34,7 +33,6 @@ var generateFlags = []cli.Flag{
cli.StringSliceFlag{Name: "gidmappings", Usage: "add GIDMappings e.g HostID:ContainerID:Size"}, cli.StringSliceFlag{Name: "gidmappings", Usage: "add GIDMappings e.g HostID:ContainerID:Size"},
cli.StringSliceFlag{Name: "groups", Usage: "supplementary groups for the process"}, cli.StringSliceFlag{Name: "groups", Usage: "supplementary groups for the process"},
cli.StringFlag{Name: "hostname", Usage: "hostname value for the container"}, cli.StringFlag{Name: "hostname", Usage: "hostname value for the container"},
cli.StringFlag{Name: "ipc", Usage: "ipc namespace"},
cli.StringSliceFlag{Name: "label", Usage: "add annotations to the configuration e.g. key=value"}, cli.StringSliceFlag{Name: "label", Usage: "add annotations to the configuration e.g. key=value"},
cli.Uint64Flag{Name: "linux-cpu-shares", Usage: "the relative share of CPU time available to the tasks in a cgroup"}, cli.Uint64Flag{Name: "linux-cpu-shares", Usage: "the relative share of CPU time available to the tasks in a cgroup"},
cli.Uint64Flag{Name: "linux-cpu-period", Usage: "the CPU period to be used for hardcapping (in usecs)"}, cli.Uint64Flag{Name: "linux-cpu-period", Usage: "the CPU period to be used for hardcapping (in usecs)"},
@ -47,21 +45,21 @@ var generateFlags = []cli.Flag{
cli.Uint64Flag{Name: "linux-mem-swap", Usage: "total memory limit (memory + swap) (in bytes)"}, cli.Uint64Flag{Name: "linux-mem-swap", Usage: "total memory limit (memory + swap) (in bytes)"},
cli.Uint64Flag{Name: "linux-mem-swappiness", Usage: "how aggressive the kernel will swap memory pages (Range from 0 to 100)"}, cli.Uint64Flag{Name: "linux-mem-swappiness", Usage: "how aggressive the kernel will swap memory pages (Range from 0 to 100)"},
cli.StringFlag{Name: "linux-mems", Usage: "list of memory nodes in the cpuset (default is to use any available memory node)"}, cli.StringFlag{Name: "linux-mems", Usage: "list of memory nodes in the cpuset (default is to use any available memory node)"},
cli.StringSliceFlag{Name: "linux-namespace-add", Usage: "adds a namespace to the set of namespaces to create or join of the form 'ns[:path]'"},
cli.StringSliceFlag{Name: "linux-namespace-remove", Usage: "removes a namespace from the set of namespaces to create or join of the form 'ns'"},
cli.BoolFlag{Name: "linux-namespace-remove-all", Usage: "removes all namespaces from the set of namespaces created or joined"},
cli.IntFlag{Name: "linux-network-classid", Usage: "specifies class identifier tagged by container's network packets"}, cli.IntFlag{Name: "linux-network-classid", Usage: "specifies class identifier tagged by container's network packets"},
cli.StringSliceFlag{Name: "linux-network-priorities", Usage: "specifies priorities of network traffic"}, cli.StringSliceFlag{Name: "linux-network-priorities", Usage: "specifies priorities of network traffic"},
cli.Int64Flag{Name: "linux-pids-limit", Usage: "maximum number of PIDs"}, cli.Int64Flag{Name: "linux-pids-limit", Usage: "maximum number of PIDs"},
cli.Uint64Flag{Name: "linux-realtime-period", Usage: "CPU period to be used for realtime scheduling (in usecs)"}, cli.Uint64Flag{Name: "linux-realtime-period", Usage: "CPU period to be used for realtime scheduling (in usecs)"},
cli.Uint64Flag{Name: "linux-realtime-runtime", Usage: "the time realtime scheduling may use (in usecs)"}, cli.Uint64Flag{Name: "linux-realtime-runtime", Usage: "the time realtime scheduling may use (in usecs)"},
cli.StringSliceFlag{Name: "masked-paths", Usage: "specifies paths can not be read inside container"}, cli.StringSliceFlag{Name: "masked-paths", Usage: "specifies paths can not be read inside container"},
cli.StringFlag{Name: "mount", Usage: "mount namespace"},
cli.StringFlag{Name: "mount-cgroups", Value: "no", Usage: "mount cgroups (rw,ro,no)"}, cli.StringFlag{Name: "mount-cgroups", Value: "no", Usage: "mount cgroups (rw,ro,no)"},
cli.StringFlag{Name: "mount-label", Usage: "selinux mount context label"}, cli.StringFlag{Name: "mount-label", Usage: "selinux mount context label"},
cli.StringFlag{Name: "network", Usage: "network namespace"},
cli.BoolFlag{Name: "no-new-privileges", Usage: "set no new privileges bit for the container process"}, cli.BoolFlag{Name: "no-new-privileges", Usage: "set no new privileges bit for the container process"},
cli.IntFlag{Name: "oom-score-adj", Usage: "oom_score_adj for the container"}, cli.IntFlag{Name: "oom-score-adj", Usage: "oom_score_adj for the container"},
cli.StringFlag{Name: "os", Value: runtime.GOOS, Usage: "operating system the container is created for"}, cli.StringFlag{Name: "os", Value: runtime.GOOS, Usage: "operating system the container is created for"},
cli.StringFlag{Name: "output", Usage: "output file (defaults to stdout)"}, cli.StringFlag{Name: "output", Usage: "output file (defaults to stdout)"},
cli.StringFlag{Name: "pid", Usage: "pid namespace"},
cli.StringSliceFlag{Name: "poststart", Usage: "set command to run in poststart hooks"}, cli.StringSliceFlag{Name: "poststart", Usage: "set command to run in poststart hooks"},
cli.StringSliceFlag{Name: "poststop", Usage: "set command to run in poststop hooks"}, cli.StringSliceFlag{Name: "poststop", Usage: "set command to run in poststop hooks"},
cli.StringSliceFlag{Name: "prestart", Usage: "set command to run in prestart hooks"}, cli.StringSliceFlag{Name: "prestart", Usage: "set command to run in prestart hooks"},
@ -91,8 +89,6 @@ var generateFlags = []cli.Flag{
cli.BoolFlag{Name: "tty", Usage: "allocate a new tty for the container process"}, cli.BoolFlag{Name: "tty", Usage: "allocate a new tty for the container process"},
cli.IntFlag{Name: "uid", Usage: "uid for the process"}, cli.IntFlag{Name: "uid", Usage: "uid for the process"},
cli.StringSliceFlag{Name: "uidmappings", Usage: "add UIDMappings e.g HostID:ContainerID:Size"}, cli.StringSliceFlag{Name: "uidmappings", Usage: "add UIDMappings e.g HostID:ContainerID:Size"},
cli.StringFlag{Name: "user", Usage: "user namespace"},
cli.StringFlag{Name: "uts", Usage: "uts namespace"},
} }
var generateCommand = cli.Command{ var generateCommand = cli.Command{
@ -280,8 +276,6 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
} }
} }
needsNewUser := false
var uidMaps, gidMaps []string var uidMaps, gidMaps []string
if context.IsSet("uidmappings") { if context.IsSet("uidmappings") {
@ -292,12 +286,11 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
gidMaps = context.StringSlice("gidmappings") gidMaps = context.StringSlice("gidmappings")
} }
// Add default user namespace.
if len(uidMaps) > 0 || len(gidMaps) > 0 { if len(uidMaps) > 0 || len(gidMaps) > 0 {
needsNewUser = true g.AddOrReplaceLinuxNamespace("user", "")
} }
setupLinuxNamespaces(context, g, needsNewUser)
if context.IsSet("tmpfs") { if context.IsSet("tmpfs") {
tmpfsSlice := context.StringSlice("tmpfs") tmpfsSlice := context.StringSlice("tmpfs")
for _, s := range tmpfsSlice { for _, s := range tmpfsSlice {
@ -457,6 +450,32 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
} }
} }
if context.IsSet("linux-namespace-add") {
namespaces := context.StringSlice("linux-namespace-add")
for _, ns := range namespaces {
name, path, err := parseNamespace(ns)
if err != nil {
return err
}
if err := g.AddOrReplaceLinuxNamespace(name, path); err != nil {
return err
}
}
}
if context.IsSet("linux-namespace-remove") {
namespaces := context.StringSlice("linux-namespace-remove")
for _, name := range namespaces {
if err := g.RemoveLinuxNamespace(name); err != nil {
return err
}
}
}
if context.Bool("linux-namespace-remove-all") {
g.ClearLinuxNamespaces()
}
if context.IsSet("rlimits-add") { if context.IsSet("rlimits-add") {
rlimits := context.StringSlice("rlimits-add") rlimits := context.StringSlice("rlimits-add")
for _, rlimit := range rlimits { for _, rlimit := range rlimits {
@ -486,20 +505,6 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
return err return err
} }
func setupLinuxNamespaces(context *cli.Context, g *generate.Generator, needsNewUser bool) {
for _, nsName := range generate.Namespaces {
if !context.IsSet(nsName) && !(needsNewUser && nsName == "user") {
continue
}
nsPath := context.String(nsName)
if nsPath == "host" {
g.RemoveLinuxNamespace(nsName)
continue
}
g.AddOrReplaceLinuxNamespace(nsName, nsPath)
}
}
func parseIDMapping(idms string) (uint32, uint32, uint32, error) { func parseIDMapping(idms string) (uint32, uint32, uint32, error) {
idm := strings.Split(idms, ":") idm := strings.Split(idms, ":")
if len(idm) != 3 { if len(idm) != 3 {
@ -604,6 +609,22 @@ func parseRlimit(rlimit string) (string, uint64, uint64, error) {
return parts[0], uint64(hard), uint64(soft), nil return parts[0], uint64(hard), uint64(soft), nil
} }
func parseNamespace(ns string) (string, string, error) {
parts := strings.SplitN(ns, ":", 2)
if len(parts) == 0 || parts[0] == "" {
return "", "", fmt.Errorf("invalid namespace value: %s", ns)
}
nsType := parts[0]
nsPath := ""
if len(parts) == 2 {
nsPath = parts[1]
}
return nsType, nsPath, nil
}
func addSeccomp(context *cli.Context, g *generate.Generator) error { func addSeccomp(context *cli.Context, g *generate.Generator) error {
// Set the DefaultAction of seccomp // Set the DefaultAction of seccomp

View file

@ -297,72 +297,80 @@ _oci-runtime-tool_help() {
_oci-runtime-tool_generate() { _oci-runtime-tool_generate() {
local options_with_args=" local options_with_args="
--arch --apparmor
--apparmor --arch
--args --args
--bind --bind
--cap-add --cap-add
--cap-drop --cap-drop
--cgroup --cgroups-path
--cgroup-path --cwd
--cwd --env
--disable-oom-kill --env-file
--env --gid
--env-file --gidmappings
--gid --groups
--gidmappings --hostname
--groups --label
--hostname --linux-cpu-shares
--help --linux-cpu-period
--ipc --linux-cpu-quota
--label --linux-cpus
--linux-network-classid --linux-mem-kernel-limit
--linux-network-priorities --linux-mem-kernel-tcp
--linux-pids-limit --linux-mem-limit
--masked-paths --linux-mem-reservation
--mount --linux-mem-swap
--mount-cgroups --linux-mem-swappiness
--mount-label --linux-mems
--network --linux-namespace-add
--os --linux-namespace-remove
--output --linux-network-classid
--pid --linux-network-priorities
--poststart --linux-pids-limit
--poststop --linux-realtime-period
--prestart --linux-realtime-runtime
--readonly-paths --masked-paths
--rootfs-path --mount-cgroups
--rootfs-propagation --mount-label
--rlimits-add --oom-score-adj
--rlimits-remove --os
--rlimits-remove-all --output
--seccomp-allow --poststart
--seccomp-arch --poststop
--seccomp-default --prestart
--seccomp-default-force --readonly-paths
--seccomp-errno --rootfs-path
--seccomp-kill --rootfs-propagation
--seccomp-only --rlimits-add
--seccomp-remove --rlimits-remove
--seccomp-remove-all --seccomp-allow
--seccomp-trace --seccomp-arch
--seccomp-trap --seccomp-default
--seccomp-syscalls --seccomp-default-force
--selinux-label --seccomp-errno
--sysctl --seccomp-kill
--tmplate --seccomp-remove
--tmpfs --seccomp-trace
--uid --seccomp-trap
--uidmappings --selinux-label
--user --sysctl
--uts --template
--tmpfs
--uid
--uidmappings
" "
local boolean_options=" local boolean_options="
--no-new-privileges --disable-oom-kill
--privileged --linux-namespace-remove-all
--rootfs-readonly --no-new-privileges
--tty --privileged
--rlimits-remove-all
--rootfs-readonly
--seccomp-only
--seccomp-remove-all
--tty
" "
local all_options="$options_with_args $boolean_options" local all_options="$options_with_args $boolean_options"

View file

@ -45,12 +45,6 @@ read the configuration from `config.json`.
**--cap-drop**=[] **--cap-drop**=[]
Drop Linux capabilities Drop Linux capabilities
**--cgroup**=*PATH*
Use a Cgroup namespace where *PATH* is an existing Cgroup namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing Cgroup namespace from
the configuration.
**--cgroups-path**="" **--cgroups-path**=""
Specifies the path to the cgroups relative to the cgroups mount point. Specifies the path to the cgroups relative to the cgroups mount point.
@ -65,7 +59,7 @@ read the configuration from `config.json`.
This option allows you to specify arbitrary environment variables This option allows you to specify arbitrary environment variables
that are available for the process that will be launched inside of that are available for the process that will be launched inside of
the container. the container.
**--env-file**=[] **--env-file**=[]
Set environment variables from a file. Set environment variables from a file.
This option sets environment variables in the container from the This option sets environment variables in the container from the
@ -88,12 +82,6 @@ read the configuration from `config.json`.
**--hostname**="" **--hostname**=""
Set the container host name that is available inside the container. Set the container host name that is available inside the container.
**--ipc**=*PATH*
Use an IPC namespace where *PATH* is an existing IPC namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing IPC namespace from the
configuration.
**--label**=[] **--label**=[]
Add annotations to the configuration e.g. key=value. Add annotations to the configuration e.g. key=value.
Currently, key containing equals sign is not supported. Currently, key containing equals sign is not supported.
@ -131,6 +119,20 @@ read the configuration from `config.json`.
**--linux-mems**=MEMS **--linux-mems**=MEMS
Sets the list of memory nodes in the cpuset (default is to use any available memory node). Sets the list of memory nodes in the cpuset (default is to use any available memory node).
**--linux-namespace-add**=NSNAME[:PATH]
Adds or replaces the given linux namespace NSNAME with a namespace entry that
has a path of PATH. Omitting PATH means that a new namespace will be created
by the container.
**--linux-namespace-remove**=NSNAME
Removes a namespace from the set of namespaces configured in the container,
so that the host's namespace will be used by the container instead of
creating or joining another namespace.
**--linux-namespace-remove-all**
Removes all namespaces from the set of namespaces configured for a container,
such that the container will effectively run on the host.
**--linux-network-classid**=CLASSID **--linux-network-classid**=CLASSID
Specifies network class identifier which will be tagged by container's network packets. Specifies network class identifier which will be tagged by container's network packets.
@ -153,12 +155,6 @@ read the configuration from `config.json`.
Specifies paths can not be read inside container. e.g. --masked-paths=/proc/kcore Specifies paths can not be read inside container. e.g. --masked-paths=/proc/kcore
This option can be specified multiple times. This option can be specified multiple times.
**--mount**=*PATH*
Use a mount namespace where *PATH* is an existing mount namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing mount namespace from the
configuration.
**--mount-cgroups**=[rw|ro|no] **--mount-cgroups**=[rw|ro|no]
Mount cgroups. The default is *no*. Mount cgroups. The default is *no*.
@ -174,12 +170,6 @@ read the configuration from `config.json`.
"system_u:object_r:usr_t:s0" might be a good label for a readonly container, "system_u:object_r:usr_t:s0" might be a good label for a readonly container,
"system_u:system_r:svirt_sandbox_file_t:s0:c1,c2" for a read/write container. "system_u:system_r:svirt_sandbox_file_t:s0:c1,c2" for a read/write container.
**--network**=*PATH*
Use a network namespace where *PATH* is an existing network namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing network namespace from the
configuration.
**--no-new-privileges**=true|false **--no-new-privileges**=true|false
Set no new privileges bit for the container process. Setting this flag Set no new privileges bit for the container process. Setting this flag
will block the container processes from gaining any additional privileges will block the container processes from gaining any additional privileges
@ -197,12 +187,6 @@ read the configuration from `config.json`.
file at *PATH* (overwriting the existing content if a file already file at *PATH* (overwriting the existing content if a file already
exists at *PATH*). exists at *PATH*).
**--pid**=*PATH*
Use a PID namespace where *PATH* is an existing PID namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing PID namespace from
the configuration.
**--poststart**=CMD[:ARGS...] **--poststart**=CMD[:ARGS...]
Set command to run in poststart hooks. Can be specified multiple times. Set command to run in poststart hooks. Can be specified multiple times.
The multiple commands will be run in order before the container process The multiple commands will be run in order before the container process
@ -330,18 +314,6 @@ read the configuration from `config.json`.
**--uidmappings** **--uidmappings**
Add UIDMappings e.g HostUID:ContainerID:Size. Implies **--user=**. Add UIDMappings e.g HostUID:ContainerID:Size. Implies **--user=**.
**--user**=*PATH*
Use a user namespace where *PATH* is an existing user namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing user namespace from
the configuration.
**--uts**=*PATH*
Use a UTS namespace where *PATH* is an existing UTS namespace file
to join. The special *PATH* empty-string creates a new namespace.
The special *PATH* `host` removes any existing UTS namespace from
the configuration.
# EXAMPLES # EXAMPLES
## Generating container in read-only mode ## Generating container in read-only mode

6
vendor/k8s.io/kubernetes/.bazelrc generated vendored Normal file
View file

@ -0,0 +1,6 @@
# Show us information about failures.
build --verbose_failures
test --test_output=errors
# Retry tests up to 3 times if they fail.
test --flaky_test_attempts=3

View file

@ -58,6 +58,7 @@ docs/man/man1/kubectl-create.1
docs/man/man1/kubectl-delete.1 docs/man/man1/kubectl-delete.1
docs/man/man1/kubectl-describe.1 docs/man/man1/kubectl-describe.1
docs/man/man1/kubectl-drain.1 docs/man/man1/kubectl-drain.1
docs/man/man1/kubectl-edit-configmap.1
docs/man/man1/kubectl-edit.1 docs/man/man1/kubectl-edit.1
docs/man/man1/kubectl-exec.1 docs/man/man1/kubectl-exec.1
docs/man/man1/kubectl-explain.1 docs/man/man1/kubectl-explain.1
@ -142,6 +143,7 @@ docs/user-guide/kubectl/kubectl_delete.md
docs/user-guide/kubectl/kubectl_describe.md docs/user-guide/kubectl/kubectl_describe.md
docs/user-guide/kubectl/kubectl_drain.md docs/user-guide/kubectl/kubectl_drain.md
docs/user-guide/kubectl/kubectl_edit.md docs/user-guide/kubectl/kubectl_edit.md
docs/user-guide/kubectl/kubectl_edit_configmap.md
docs/user-guide/kubectl/kubectl_exec.md docs/user-guide/kubectl/kubectl_exec.md
docs/user-guide/kubectl/kubectl_explain.md docs/user-guide/kubectl/kubectl_explain.md
docs/user-guide/kubectl/kubectl_expose.md docs/user-guide/kubectl/kubectl_expose.md

11
vendor/k8s.io/kubernetes/BUILD.bazel generated vendored
View file

@ -12,6 +12,7 @@ gcs_upload(
name = "ci-artifacts", name = "ci-artifacts",
data = [ data = [
"//build/debs", "//build/debs",
"//build/release-tars",
], ],
) )
@ -51,13 +52,3 @@ filegroup(
], ],
tags = ["automanaged"], tags = ["automanaged"],
) )
pkg_tar(
name = "kubernetes-src",
extension = "tar.gz",
files = [
":all-srcs",
],
package_dir = "kubernetes",
strip_prefix = "//",
)

View file

@ -128,6 +128,10 @@
"Comment": "v0.8.1-6-gab50d12", "Comment": "v0.8.1-6-gab50d12",
"Rev": "ab50d12e88f57788bf84b83fef2be236eb1fcc0b" "Rev": "ab50d12e88f57788bf84b83fef2be236eb1fcc0b"
}, },
{
"ImportPath": "github.com/armon/circbuf",
"Rev": "bbbad097214e2918d8543d5201d12bfd7bca254d"
},
{ {
"ImportPath": "github.com/asaskevich/govalidator", "ImportPath": "github.com/asaskevich/govalidator",
"Comment": "v4-12-g593d645", "Comment": "v4-12-g593d645",
@ -135,143 +139,163 @@
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws", "ImportPath": "github.com/aws/aws-sdk-go/aws",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/awserr", "ImportPath": "github.com/aws/aws-sdk-go/aws/awserr",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/awsutil", "ImportPath": "github.com/aws/aws-sdk-go/aws/awsutil",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/client", "ImportPath": "github.com/aws/aws-sdk-go/aws/client",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/client/metadata", "ImportPath": "github.com/aws/aws-sdk-go/aws/client/metadata",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/corehandlers", "ImportPath": "github.com/aws/aws-sdk-go/aws/corehandlers",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/credentials", "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds",
"Comment": "v1.6.10",
"Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/stscreds",
"Comment": "v1.6.10",
"Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/defaults", "ImportPath": "github.com/aws/aws-sdk-go/aws/defaults",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/ec2metadata", "ImportPath": "github.com/aws/aws-sdk-go/aws/ec2metadata",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/aws/endpoints",
"Comment": "v1.6.10",
"Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/request", "ImportPath": "github.com/aws/aws-sdk-go/aws/request",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/aws/session", "ImportPath": "github.com/aws/aws-sdk-go/aws/session",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/endpoints", "ImportPath": "github.com/aws/aws-sdk-go/aws/signer/v4",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol",
"Comment": "v1.6.10",
"Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/ec2query", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/ec2query",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/rest", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/rest",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/restxml", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/restxml",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/private/signer/v4",
"Comment": "v1.0.8",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/private/waiter", "ImportPath": "github.com/aws/aws-sdk-go/private/waiter",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/service/autoscaling", "ImportPath": "github.com/aws/aws-sdk-go/service/autoscaling",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/service/ec2", "ImportPath": "github.com/aws/aws-sdk-go/service/ec2",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/service/ecr", "ImportPath": "github.com/aws/aws-sdk-go/service/ecr",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/service/elb", "ImportPath": "github.com/aws/aws-sdk-go/service/elb",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/aws/aws-sdk-go/service/route53", "ImportPath": "github.com/aws/aws-sdk-go/service/route53",
"Comment": "v1.0.8", "Comment": "v1.6.10",
"Rev": "c924893c38ecc04b18d7aab8a7aa561cb8b4c4cc" "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
},
{
"ImportPath": "github.com/aws/aws-sdk-go/service/sts",
"Comment": "v1.6.10",
"Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d"
}, },
{ {
"ImportPath": "github.com/beorn7/perks/quantile", "ImportPath": "github.com/beorn7/perks/quantile",
@ -728,7 +752,7 @@
}, },
{ {
"ImportPath": "github.com/coreos/rkt/api/v1alpha", "ImportPath": "github.com/coreos/rkt/api/v1alpha",
"Comment": "v1.11.0-59-ga83419b", "Comment": "v1.11.0-59-ga83419be",
"Rev": "a83419be28ac626876f94a28b4df2dbc9eac7448" "Rev": "a83419be28ac626876f94a28b4df2dbc9eac7448"
}, },
{ {
@ -751,12 +775,12 @@
}, },
{ {
"ImportPath": "github.com/docker/distribution/digest", "ImportPath": "github.com/docker/distribution/digest",
"Comment": "v2.4.0-rc.1-38-gcd27f17", "Comment": "v2.4.0-rc.1-38-gcd27f179",
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51" "Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
}, },
{ {
"ImportPath": "github.com/docker/distribution/reference", "ImportPath": "github.com/docker/distribution/reference",
"Comment": "v2.4.0-rc.1-38-gcd27f17", "Comment": "v2.4.0-rc.1-38-gcd27f179",
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51" "Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
}, },
{ {
@ -1000,127 +1024,127 @@
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/gogoproto", "ImportPath": "github.com/gogo/protobuf/gogoproto",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/compare", "ImportPath": "github.com/gogo/protobuf/plugin/compare",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck", "ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/description", "ImportPath": "github.com/gogo/protobuf/plugin/description",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/embedcheck", "ImportPath": "github.com/gogo/protobuf/plugin/embedcheck",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/enumstringer", "ImportPath": "github.com/gogo/protobuf/plugin/enumstringer",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/equal", "ImportPath": "github.com/gogo/protobuf/plugin/equal",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/face", "ImportPath": "github.com/gogo/protobuf/plugin/face",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/gostring", "ImportPath": "github.com/gogo/protobuf/plugin/gostring",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/marshalto", "ImportPath": "github.com/gogo/protobuf/plugin/marshalto",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck", "ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/populate", "ImportPath": "github.com/gogo/protobuf/plugin/populate",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/size", "ImportPath": "github.com/gogo/protobuf/plugin/size",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/stringer", "ImportPath": "github.com/gogo/protobuf/plugin/stringer",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/testgen", "ImportPath": "github.com/gogo/protobuf/plugin/testgen",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/union", "ImportPath": "github.com/gogo/protobuf/plugin/union",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/plugin/unmarshal", "ImportPath": "github.com/gogo/protobuf/plugin/unmarshal",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/proto", "ImportPath": "github.com/gogo/protobuf/proto",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator", "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc", "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin", "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/sortkeys", "ImportPath": "github.com/gogo/protobuf/sortkeys",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/vanity", "ImportPath": "github.com/gogo/protobuf/vanity",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
"ImportPath": "github.com/gogo/protobuf/vanity/command", "ImportPath": "github.com/gogo/protobuf/vanity/command",
"Comment": "v0.2-33-ge18d7aa", "Comment": "v0.2-33-ge18d7aa8",
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173" "Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
}, },
{ {
@ -1149,203 +1173,203 @@
}, },
{ {
"ImportPath": "github.com/google/cadvisor/api", "ImportPath": "github.com/google/cadvisor/api",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/cache/memory", "ImportPath": "github.com/google/cadvisor/cache/memory",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/client/v2", "ImportPath": "github.com/google/cadvisor/client/v2",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/collector", "ImportPath": "github.com/google/cadvisor/collector",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container", "ImportPath": "github.com/google/cadvisor/container",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/common", "ImportPath": "github.com/google/cadvisor/container/common",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/docker", "ImportPath": "github.com/google/cadvisor/container/docker",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/libcontainer", "ImportPath": "github.com/google/cadvisor/container/libcontainer",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/raw", "ImportPath": "github.com/google/cadvisor/container/raw",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/rkt", "ImportPath": "github.com/google/cadvisor/container/rkt",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/systemd", "ImportPath": "github.com/google/cadvisor/container/systemd",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/devicemapper", "ImportPath": "github.com/google/cadvisor/devicemapper",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/events", "ImportPath": "github.com/google/cadvisor/events",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/fs", "ImportPath": "github.com/google/cadvisor/fs",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/healthz", "ImportPath": "github.com/google/cadvisor/healthz",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/http", "ImportPath": "github.com/google/cadvisor/http",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/http/mux", "ImportPath": "github.com/google/cadvisor/http/mux",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/info/v1", "ImportPath": "github.com/google/cadvisor/info/v1",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/info/v2", "ImportPath": "github.com/google/cadvisor/info/v2",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/machine", "ImportPath": "github.com/google/cadvisor/machine",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager", "ImportPath": "github.com/google/cadvisor/manager",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher", "ImportPath": "github.com/google/cadvisor/manager/watcher",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher/raw", "ImportPath": "github.com/google/cadvisor/manager/watcher/raw",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/metrics", "ImportPath": "github.com/google/cadvisor/metrics",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/pages", "ImportPath": "github.com/google/cadvisor/pages",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/pages/static", "ImportPath": "github.com/google/cadvisor/pages/static",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/storage", "ImportPath": "github.com/google/cadvisor/storage",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/summary", "ImportPath": "github.com/google/cadvisor/summary",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils", "ImportPath": "github.com/google/cadvisor/utils",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cloudinfo", "ImportPath": "github.com/google/cadvisor/utils/cloudinfo",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cpuload", "ImportPath": "github.com/google/cadvisor/utils/cpuload",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/docker", "ImportPath": "github.com/google/cadvisor/utils/docker",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/oomparser", "ImportPath": "github.com/google/cadvisor/utils/oomparser",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/sysfs", "ImportPath": "github.com/google/cadvisor/utils/sysfs",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/sysinfo", "ImportPath": "github.com/google/cadvisor/utils/sysinfo",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/tail", "ImportPath": "github.com/google/cadvisor/utils/tail",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/validate", "ImportPath": "github.com/google/cadvisor/validate",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/version", "ImportPath": "github.com/google/cadvisor/version",
"Comment": "v0.24.0-alpha1-56-ga726d13", "Comment": "v0.24.0-alpha1-82-gc30a9e7",
"Rev": "a726d13de8cb32860e73d72a78dc8e0124267709" "Rev": "c30a9e7d3642fffb422f08be34a7bbc15d69cdbf"
}, },
{ {
"ImportPath": "github.com/google/certificate-transparency/go", "ImportPath": "github.com/google/certificate-transparency/go",
@ -1922,187 +1946,187 @@
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud", "ImportPath": "github.com/rackspace/gophercloud",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack", "ImportPath": "github.com/rackspace/gophercloud/openstack",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes", "ImportPath": "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/common/extensions", "ImportPath": "github.com/rackspace/gophercloud/openstack/common/extensions",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/flavors", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/flavors",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/images", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/images",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/servers", "ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/servers",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tenants", "ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tenants",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tokens", "ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tokens",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/extensions/trust", "ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/extensions/trust",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/tokens", "ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/tokens",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/floatingips",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/members", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/members",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/monitors", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/monitors",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/pools", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/pools",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/vips", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/vips",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/groups", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/groups",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/rules", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/rules",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/ports", "ImportPath": "github.com/rackspace/gophercloud/openstack/networking/v2/ports",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/openstack/utils", "ImportPath": "github.com/rackspace/gophercloud/openstack/utils",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/pagination", "ImportPath": "github.com/rackspace/gophercloud/pagination",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/rackspace", "ImportPath": "github.com/rackspace/gophercloud/rackspace",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes", "ImportPath": "github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/servers", "ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/servers",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach", "ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/rackspace/identity/v2/tokens", "ImportPath": "github.com/rackspace/gophercloud/rackspace/identity/v2/tokens",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/testhelper", "ImportPath": "github.com/rackspace/gophercloud/testhelper",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
"ImportPath": "github.com/rackspace/gophercloud/testhelper/client", "ImportPath": "github.com/rackspace/gophercloud/testhelper/client",
"Comment": "v1.0.0-1012-ge00690e", "Comment": "v1.0.0-1012-ge00690e8",
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063" "Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
}, },
{ {
@ -2639,43 +2663,43 @@
}, },
{ {
"ImportPath": "k8s.io/gengo/args", "ImportPath": "k8s.io/gengo/args",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/import-boss/generators", "ImportPath": "k8s.io/gengo/examples/import-boss/generators",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/set-gen/generators", "ImportPath": "k8s.io/gengo/examples/set-gen/generators",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/set-gen/sets", "ImportPath": "k8s.io/gengo/examples/set-gen/sets",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/generator", "ImportPath": "k8s.io/gengo/generator",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/namer", "ImportPath": "k8s.io/gengo/namer",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/parser", "ImportPath": "k8s.io/gengo/parser",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/gengo/types", "ImportPath": "k8s.io/gengo/types",
"Rev": "3c6a809462caf39389d70d9ea787ed24c5acffed" "Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
}, },
{ {
"ImportPath": "k8s.io/heapster/metrics/api/v1/types", "ImportPath": "k8s.io/heapster/metrics/api/v1/types",

File diff suppressed because it is too large Load diff

18
vendor/k8s.io/kubernetes/Makefile generated vendored
View file

@ -470,7 +470,7 @@ help:
endif endif
# Non-dockerized bazel rules. # Non-dockerized bazel rules.
.PHONY: bazel-build bazel-test .PHONY: bazel-build bazel-test bazel-release
ifeq ($(PRINT_HELP),y) ifeq ($(PRINT_HELP),y)
define BAZEL_BUILD_HELP_INFO define BAZEL_BUILD_HELP_INFO
@ -498,5 +498,19 @@ endef
@echo "$$BAZEL_TEST_HELP_INFO" @echo "$$BAZEL_TEST_HELP_INFO"
else else
bazel-test: bazel-test:
bazel test --test_output=errors //cmd/... //pkg/... //federation/... //plugin/... //build/... //third_party/... //hack/... bazel test //cmd/... //pkg/... //federation/... //plugin/... //build/... //third_party/... //hack/... //hack:verify-all
endif
ifeq ($(PRINT_HELP),y)
define BAZEL_BUILD_HELP_INFO
# Build release tars with bazel
#
# Example:
# make bazel-release
endef
bazel-release:
@echo "$$BAZEL_BUILD_HELP_INFO"
else
bazel-release:
bazel build //build/release-tars
endif endif

9
vendor/k8s.io/kubernetes/OWNERS generated vendored
View file

@ -1,4 +1,11 @@
assignees: reviewers:
- brendandburns
- dchen1107
- jbeda
- lavalamp
- smarterclayton
- thockin
approvers:
- bgrant0607 - bgrant0607
- brendandburns - brendandburns
- dchen1107 - dchen1107

View file

@ -29,3 +29,21 @@ aliases:
- ixdy - ixdy
- rmmh - rmmh
- spxtr - spxtr
sig-node-reviewers:
- Random-Liu
- dashpole
- dchen1107
- derekwaynecarr
- dims
- euank
- feiskyer
- mtaufen
- ncdc
- pmorie
- resouer
- sjpotter
- timstclair
- tmrts
- vishh
- yifan-gu
- yujuhong

10
vendor/k8s.io/kubernetes/WORKSPACE generated vendored
View file

@ -10,6 +10,12 @@ git_repository(
remote = "https://github.com/kubernetes/release.git", remote = "https://github.com/kubernetes/release.git",
) )
git_repository(
name = "io_bazel",
commit = "3b29803eb528ff525c7024190ffbf4b08c598cf2",
remote = "https://github.com/ixdy/bazel.git",
)
load("@io_bazel_rules_go//go:def.bzl", "go_repositories") load("@io_bazel_rules_go//go:def.bzl", "go_repositories")
go_repositories() go_repositories()
@ -23,8 +29,8 @@ debs = (
), ),
( (
"libc_deb", "libc_deb",
"ee4d9dea08728e2c2bbf43d819c3c7e61798245fab4b983ae910865980f791ad", "6bbd506b171a9f29b09fde77e2749c0aa0c1439058df9d1a6408d464069b7dd6",
"http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.19-18+deb8u6_amd64.deb", "http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.24-9_amd64.deb",
), ),
( (
"iptables_deb", "iptables_deb",

File diff suppressed because it is too large Load diff

View file

@ -1353,6 +1353,10 @@
"affinity": { "affinity": {
"$ref": "v1.Affinity", "$ref": "v1.Affinity",
"description": "If specified, the pod's scheduling constraints" "description": "If specified, the pod's scheduling constraints"
},
"schedulername": {
"type": "string",
"description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler."
} }
} }
}, },
@ -1570,12 +1574,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's keys must be defined"
} }
} }
}, },
@ -2001,12 +2009,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's keys must be defined"
} }
} }
}, },
@ -2187,7 +2199,11 @@
}, },
"terminationMessagePath": { "terminationMessagePath": {
"type": "string", "type": "string",
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Defaults to /dev/termination-log. Cannot be updated." "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."
},
"terminationMessagePolicy": {
"type": "string",
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."
}, },
"imagePullPolicy": { "imagePullPolicy": {
"type": "string", "type": "string",
@ -2253,6 +2269,10 @@
"configMapRef": { "configMapRef": {
"$ref": "v1.ConfigMapEnvSource", "$ref": "v1.ConfigMapEnvSource",
"description": "The ConfigMap to select from" "description": "The ConfigMap to select from"
},
"secretRef": {
"$ref": "v1.SecretEnvSource",
"description": "The Secret to select from"
} }
} }
}, },
@ -2263,6 +2283,24 @@
"name": { "name": {
"type": "string", "type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap must be defined"
}
}
},
"v1.SecretEnvSource": {
"id": "v1.SecretEnvSource",
"description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
"properties": {
"name": {
"type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret must be defined"
} }
} }
}, },
@ -2323,6 +2361,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key to select." "description": "The key to select."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's key must be defined"
} }
} }
}, },
@ -2340,6 +2382,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key of the secret to select from. Must be a valid secret key." "description": "The key of the secret to select from. Must be a valid secret key."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's key must be defined"
} }
} }
}, },
@ -3040,7 +3086,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

View file

@ -1371,7 +1371,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

View file

@ -1358,6 +1358,10 @@
"affinity": { "affinity": {
"$ref": "v1.Affinity", "$ref": "v1.Affinity",
"description": "If specified, the pod's scheduling constraints" "description": "If specified, the pod's scheduling constraints"
},
"schedulername": {
"type": "string",
"description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler."
} }
} }
}, },
@ -1575,12 +1579,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's keys must be defined"
} }
} }
}, },
@ -2006,12 +2014,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's keys must be defined"
} }
} }
}, },
@ -2192,7 +2204,11 @@
}, },
"terminationMessagePath": { "terminationMessagePath": {
"type": "string", "type": "string",
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Defaults to /dev/termination-log. Cannot be updated." "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."
},
"terminationMessagePolicy": {
"type": "string",
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."
}, },
"imagePullPolicy": { "imagePullPolicy": {
"type": "string", "type": "string",
@ -2258,6 +2274,10 @@
"configMapRef": { "configMapRef": {
"$ref": "v1.ConfigMapEnvSource", "$ref": "v1.ConfigMapEnvSource",
"description": "The ConfigMap to select from" "description": "The ConfigMap to select from"
},
"secretRef": {
"$ref": "v1.SecretEnvSource",
"description": "The Secret to select from"
} }
} }
}, },
@ -2268,6 +2288,24 @@
"name": { "name": {
"type": "string", "type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap must be defined"
}
}
},
"v1.SecretEnvSource": {
"id": "v1.SecretEnvSource",
"description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
"properties": {
"name": {
"type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret must be defined"
} }
} }
}, },
@ -2328,6 +2366,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key to select." "description": "The key to select."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's key must be defined"
} }
} }
}, },
@ -2345,6 +2387,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key of the secret to select from. Must be a valid secret key." "description": "The key of the secret to select from. Must be a valid secret key."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's key must be defined"
} }
} }
}, },
@ -3020,7 +3066,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

File diff suppressed because it is too large Load diff

View file

@ -7730,6 +7730,10 @@
"affinity": { "affinity": {
"$ref": "v1.Affinity", "$ref": "v1.Affinity",
"description": "If specified, the pod's scheduling constraints" "description": "If specified, the pod's scheduling constraints"
},
"schedulername": {
"type": "string",
"description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler."
} }
} }
}, },
@ -7947,12 +7951,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's keys must be defined"
} }
} }
}, },
@ -8378,12 +8386,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's keys must be defined"
} }
} }
}, },
@ -8564,7 +8576,11 @@
}, },
"terminationMessagePath": { "terminationMessagePath": {
"type": "string", "type": "string",
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Defaults to /dev/termination-log. Cannot be updated." "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."
},
"terminationMessagePolicy": {
"type": "string",
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."
}, },
"imagePullPolicy": { "imagePullPolicy": {
"type": "string", "type": "string",
@ -8630,6 +8646,10 @@
"configMapRef": { "configMapRef": {
"$ref": "v1.ConfigMapEnvSource", "$ref": "v1.ConfigMapEnvSource",
"description": "The ConfigMap to select from" "description": "The ConfigMap to select from"
},
"secretRef": {
"$ref": "v1.SecretEnvSource",
"description": "The Secret to select from"
} }
} }
}, },
@ -8640,6 +8660,24 @@
"name": { "name": {
"type": "string", "type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap must be defined"
}
}
},
"v1.SecretEnvSource": {
"id": "v1.SecretEnvSource",
"description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
"properties": {
"name": {
"type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret must be defined"
} }
} }
}, },
@ -8700,6 +8738,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key to select." "description": "The key to select."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's key must be defined"
} }
} }
}, },
@ -8717,6 +8759,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key of the secret to select from. Must be a valid secret key." "description": "The key of the secret to select from. Must be a valid secret key."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's key must be defined"
} }
} }
}, },
@ -9359,7 +9405,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

View file

@ -1381,7 +1381,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

View file

@ -3068,7 +3068,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",
@ -3177,10 +3177,6 @@
}, },
"description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds." "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds."
}, },
"attributeRestrictions": {
"type": "string",
"description": "AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports. If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error."
},
"apiGroups": { "apiGroups": {
"type": "array", "type": "array",
"items": { "items": {

File diff suppressed because it is too large Load diff

View file

@ -66,8 +66,8 @@
"description": "get information of a group" "description": "get information of a group"
}, },
{ {
"path": "/apis/certificates.k8s.io/v1alpha1", "path": "/apis/certificates.k8s.io/v1beta1",
"description": "API at /apis/certificates.k8s.io/v1alpha1" "description": "API at /apis/certificates.k8s.io/v1beta1"
}, },
{ {
"path": "/apis/certificates.k8s.io", "path": "/apis/certificates.k8s.io",
@ -89,6 +89,10 @@
"path": "/apis/policy", "path": "/apis/policy",
"description": "get information of a group" "description": "get information of a group"
}, },
{
"path": "/apis/rbac.authorization.k8s.io/v1beta1",
"description": "API at /apis/rbac.authorization.k8s.io/v1beta1"
},
{ {
"path": "/apis/rbac.authorization.k8s.io/v1alpha1", "path": "/apis/rbac.authorization.k8s.io/v1alpha1",
"description": "API at /apis/rbac.authorization.k8s.io/v1alpha1" "description": "API at /apis/rbac.authorization.k8s.io/v1alpha1"

View file

@ -894,7 +894,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",

View file

@ -16597,7 +16597,7 @@
}, },
"v1.DeleteOptions": { "v1.DeleteOptions": {
"id": "v1.DeleteOptions", "id": "v1.DeleteOptions",
"description": "DeleteOptions may be provided when deleting an API object", "description": "DeleteOptions may be provided when deleting an API object.",
"properties": { "properties": {
"kind": { "kind": {
"type": "string", "type": "string",
@ -18272,6 +18272,10 @@
"affinity": { "affinity": {
"$ref": "v1.Affinity", "$ref": "v1.Affinity",
"description": "If specified, the pod's scheduling constraints" "description": "If specified, the pod's scheduling constraints"
},
"schedulername": {
"type": "string",
"description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler."
} }
} }
}, },
@ -18424,12 +18428,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's keys must be defined"
} }
} }
}, },
@ -18568,12 +18576,16 @@
"items": { "items": {
"$ref": "v1.KeyToPath" "$ref": "v1.KeyToPath"
}, },
"description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error. Paths must be relative and may not contain the '..' path or start with '..'." "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."
}, },
"defaultMode": { "defaultMode": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's keys must be defined"
} }
} }
}, },
@ -18656,7 +18668,11 @@
}, },
"terminationMessagePath": { "terminationMessagePath": {
"type": "string", "type": "string",
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Defaults to /dev/termination-log. Cannot be updated." "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."
},
"terminationMessagePolicy": {
"type": "string",
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."
}, },
"imagePullPolicy": { "imagePullPolicy": {
"type": "string", "type": "string",
@ -18722,6 +18738,10 @@
"configMapRef": { "configMapRef": {
"$ref": "v1.ConfigMapEnvSource", "$ref": "v1.ConfigMapEnvSource",
"description": "The ConfigMap to select from" "description": "The ConfigMap to select from"
},
"secretRef": {
"$ref": "v1.SecretEnvSource",
"description": "The Secret to select from"
} }
} }
}, },
@ -18732,6 +18752,24 @@
"name": { "name": {
"type": "string", "type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap must be defined"
}
}
},
"v1.SecretEnvSource": {
"id": "v1.SecretEnvSource",
"description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
"properties": {
"name": {
"type": "string",
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret must be defined"
} }
} }
}, },
@ -18792,6 +18830,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key to select." "description": "The key to select."
},
"optional": {
"type": "boolean",
"description": "Specify whether the ConfigMap or it's key must be defined"
} }
} }
}, },
@ -18809,6 +18851,10 @@
"key": { "key": {
"type": "string", "type": "string",
"description": "The key of the secret to select from. Must be a valid secret key." "description": "The key of the secret to select from. Must be a valid secret key."
},
"optional": {
"type": "boolean",
"description": "Specify whether the Secret or it's key must be defined"
} }
} }
}, },

94
vendor/k8s.io/kubernetes/build/BUILD generated vendored
View file

@ -1,6 +1,22 @@
package(default_visibility = ["//visibility:public"]) package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/docker:docker.bzl", "docker_build") load("@io_bazel//tools/build_defs/docker:docker.bzl", "docker_build")
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//build/debs:all-srcs",
"//build/release-tars:all-srcs",
],
tags = ["automanaged"],
)
docker_build( docker_build(
name = "busybox", name = "busybox",
@ -34,43 +50,59 @@ docker_build(
], ],
) )
DOCKERIZED_BINARIES = {
"kube-apiserver": {
"base": ":busybox-libc",
"target": "//cmd/kube-apiserver:kube-apiserver",
},
"kube-controller-manager": {
"base": ":busybox-libc",
"target": "//cmd/kube-controller-manager:kube-controller-manager",
},
"kube-scheduler": {
"base": ":busybox-libc",
"target": "//plugin/cmd/kube-scheduler:kube-scheduler",
},
"kube-aggregator": {
"base": ":busybox-libc",
"target": "//cmd/kube-aggregator:kube-aggregator",
},
"kube-proxy": {
"base": ":busybox-net",
"target": "//cmd/kube-proxy:kube-proxy",
},
}
[genrule(
name = binary + "_docker_tag",
srcs = [meta["target"]],
outs = [binary + ".docker_tag"],
# Currently each target has two outputs, the binary and its library, so hash only the first item (the binary).
# This can be made less hacky when we have static linking working.
cmd = "md5sum $(locations " + meta["target"] + ") | grep '" + binary + "'$$ | cut -f1 -d' ' | tr -d '\n' > $@",
) for binary, meta in DOCKERIZED_BINARIES.items()]
[docker_build( [docker_build(
name = binary, name = binary,
base = ":busybox-libc", base = meta["base"],
cmd = ["/usr/bin/" + binary], cmd = ["/usr/bin/" + binary],
debs = [ debs = [
"//build/debs:%s.deb" % binary, "//build/debs:%s.deb" % binary,
], ],
repository = "gcr.io/google-containers", image_tags = [
) for binary in [ "@%s.docker_tag" % binary,
"kube-apiserver",
"kube-controller-manager",
"kube-scheduler",
"kube-aggregator",
]]
docker_build(
name = "kube-proxy",
base = ":busybox-net",
cmd = ["/usr/bin/kube-proxy"],
debs = [
"//build/debs:kube-proxy.deb",
], ],
repository = "gcr.io/google-containers", repository = "gcr.io/google_containers/" + binary,
) repository_append_package = False,
symlinks = {
# Some cluster startup scripts expect to find the binaries in /usr/local/bin,
# but the debs install the binaries into /usr/bin.
"/usr/local/bin/" + binary: "/usr/bin/" + binary,
},
) for binary, meta in DOCKERIZED_BINARIES.items()]
filegroup( filegroup(
name = "package-srcs", name = "docker-artifacts",
srcs = glob(["**"]), srcs = [":%s.tar" % binary for binary in DOCKERIZED_BINARIES.keys()] +
tags = ["automanaged"], [":%s.docker_tag" % binary for binary in DOCKERIZED_BINARIES.keys()],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//build/debs:all-srcs",
],
tags = ["automanaged"],
) )

View file

@ -1,4 +1,10 @@
assignees: reviewers:
- ihmccreery
- ixdy
- jbeda
- lavalamp
- zmerlynn
approvers:
- ihmccreery - ihmccreery
- ixdy - ixdy
- jbeda - jbeda

View file

@ -356,34 +356,37 @@ function kube::release::package_salt_tarball() {
function kube::release::package_kube_manifests_tarball() { function kube::release::package_kube_manifests_tarball() {
kube::log::status "Building tarball: manifests" kube::log::status "Building tarball: manifests"
local salt_dir="${KUBE_ROOT}/cluster/saltbase/salt"
local release_stage="${RELEASE_STAGE}/manifests/kubernetes" local release_stage="${RELEASE_STAGE}/manifests/kubernetes"
rm -rf "${release_stage}" rm -rf "${release_stage}"
local dst_dir="${release_stage}/gci-trusty"
mkdir -p "${dst_dir}"
local salt_dir="${KUBE_ROOT}/cluster/saltbase/salt" mkdir -p "${release_stage}"
cp "${salt_dir}/cluster-autoscaler/cluster-autoscaler.manifest" "${dst_dir}/"
cp "${salt_dir}/fluentd-gcp/fluentd-gcp.yaml" "${release_stage}/" cp "${salt_dir}/fluentd-gcp/fluentd-gcp.yaml" "${release_stage}/"
cp "${salt_dir}/kube-registry-proxy/kube-registry-proxy.yaml" "${release_stage}/" cp "${salt_dir}/kube-registry-proxy/kube-registry-proxy.yaml" "${release_stage}/"
cp "${salt_dir}/kube-proxy/kube-proxy.manifest" "${release_stage}/" cp "${salt_dir}/kube-proxy/kube-proxy.manifest" "${release_stage}/"
cp "${salt_dir}/etcd/etcd.manifest" "${dst_dir}"
cp "${salt_dir}/kube-scheduler/kube-scheduler.manifest" "${dst_dir}" local gci_dst_dir="${release_stage}/gci-trusty"
cp "${salt_dir}/kube-apiserver/kube-apiserver.manifest" "${dst_dir}" mkdir -p "${gci_dst_dir}"
cp "${salt_dir}/kube-apiserver/abac-authz-policy.jsonl" "${dst_dir}" cp "${salt_dir}/cluster-autoscaler/cluster-autoscaler.manifest" "${gci_dst_dir}/"
cp "${salt_dir}/kube-controller-manager/kube-controller-manager.manifest" "${dst_dir}" cp "${salt_dir}/etcd/etcd.manifest" "${gci_dst_dir}"
cp "${salt_dir}/kube-addons/kube-addon-manager.yaml" "${dst_dir}" cp "${salt_dir}/kube-scheduler/kube-scheduler.manifest" "${gci_dst_dir}"
cp "${salt_dir}/l7-gcp/glbc.manifest" "${dst_dir}" cp "${salt_dir}/kube-apiserver/kube-apiserver.manifest" "${gci_dst_dir}"
cp "${salt_dir}/rescheduler/rescheduler.manifest" "${dst_dir}/" cp "${salt_dir}/kube-apiserver/abac-authz-policy.jsonl" "${gci_dst_dir}"
cp "${salt_dir}/e2e-image-puller/e2e-image-puller.manifest" "${dst_dir}/" cp "${salt_dir}/kube-controller-manager/kube-controller-manager.manifest" "${gci_dst_dir}"
cp "${KUBE_ROOT}/cluster/gce/trusty/configure-helper.sh" "${dst_dir}/trusty-configure-helper.sh" cp "${salt_dir}/kube-addons/kube-addon-manager.yaml" "${gci_dst_dir}"
cp "${KUBE_ROOT}/cluster/gce/gci/configure-helper.sh" "${dst_dir}/gci-configure-helper.sh" cp "${salt_dir}/l7-gcp/glbc.manifest" "${gci_dst_dir}"
cp "${KUBE_ROOT}/cluster/gce/gci/mounter/mounter" "${dst_dir}/gci-mounter" cp "${salt_dir}/rescheduler/rescheduler.manifest" "${gci_dst_dir}/"
cp "${KUBE_ROOT}/cluster/gce/gci/health-monitor.sh" "${dst_dir}/health-monitor.sh" cp "${salt_dir}/e2e-image-puller/e2e-image-puller.manifest" "${gci_dst_dir}/"
cp "${KUBE_ROOT}/cluster/gce/container-linux/configure-helper.sh" "${dst_dir}/container-linux-configure-helper.sh" cp "${KUBE_ROOT}/cluster/gce/trusty/configure-helper.sh" "${gci_dst_dir}/trusty-configure-helper.sh"
cp -r "${salt_dir}/kube-admission-controls/limit-range" "${dst_dir}" cp "${KUBE_ROOT}/cluster/gce/gci/configure-helper.sh" "${gci_dst_dir}/gci-configure-helper.sh"
cp "${KUBE_ROOT}/cluster/gce/gci/mounter/mounter" "${gci_dst_dir}/gci-mounter"
cp "${KUBE_ROOT}/cluster/gce/gci/health-monitor.sh" "${gci_dst_dir}/health-monitor.sh"
cp "${KUBE_ROOT}/cluster/gce/container-linux/configure-helper.sh" "${gci_dst_dir}/container-linux-configure-helper.sh"
cp -r "${salt_dir}/kube-admission-controls/limit-range" "${gci_dst_dir}"
local objects local objects
objects=$(cd "${KUBE_ROOT}/cluster/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo) objects=$(cd "${KUBE_ROOT}/cluster/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo)
tar c -C "${KUBE_ROOT}/cluster/addons" ${objects} | tar x -C "${dst_dir}" tar c -C "${KUBE_ROOT}/cluster/addons" ${objects} | tar x -C "${gci_dst_dir}"
kube::release::clean_cruft kube::release::clean_cruft

View file

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
.PHONY: all push push-legacy container clean .PHONY: all push push-legacy container clean orphan
REGISTRY ?= gcr.io/google_containers REGISTRY ?= gcr.io/google_containers
IMAGE = $(REGISTRY)/pause-$(ARCH) IMAGE = $(REGISTRY)/pause-$(ARCH)
@ -25,7 +25,7 @@ ARCH ?= amd64
ALL_ARCH = amd64 arm arm64 ppc64le s390x ALL_ARCH = amd64 arm arm64 ppc64le s390x
CFLAGS = -Os -Wall -static CFLAGS = -Os -Wall -Werror -static
KUBE_CROSS_IMAGE ?= gcr.io/google_containers/kube-cross KUBE_CROSS_IMAGE ?= gcr.io/google_containers/kube-cross
KUBE_CROSS_VERSION ?= $(shell cat ../build-image/cross/VERSION) KUBE_CROSS_VERSION ?= $(shell cat ../build-image/cross/VERSION)
@ -97,5 +97,16 @@ ifeq ($(ARCH),amd64)
endif endif
touch $@ touch $@
# Useful for testing, not automatically included in container image
orphan: bin/orphan-$(ARCH)
bin/orphan-$(ARCH): orphan.c
mkdir -p bin
docker run -u $$(id -u):$$(id -g) -v $$(pwd):/build \
$(KUBE_CROSS_IMAGE):$(KUBE_CROSS_VERSION) \
/bin/bash -c "\
cd /build && \
$(TRIPLE)-gcc $(CFLAGS) -o $@ $^ && \
$(TRIPLE)-strip $@"
clean: clean:
rm -rf .container-* .push-* bin/ rm -rf .container-* .push-* bin/

View file

@ -14,10 +14,23 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package types /* Creates a zombie to be reaped by init. Useful for testing. */
// int64 is used as a safe bet against wrap-around (uid's are general #include <stdio.h>
// int32) and to support uid_t -1, and -2. #include <unistd.h>
type UnixUserID int64 int main() {
type UnixGroupID int64 pid_t pid;
pid = fork();
if (pid == 0) {
while (getppid() > 1)
;
printf("Child exiting: pid=%d ppid=%d\n", getpid(), getppid());
return 0;
} else if (pid > 0) {
printf("Parent exiting: pid=%d ppid=%d\n", getpid(), getppid());
return 0;
}
perror("Could not create child");
return 1;
}

View file

@ -17,20 +17,36 @@ limitations under the License.
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h> #include <unistd.h>
static void sigdown(int signo) { static void sigdown(int signo) {
psignal(signo, "shutting down, got signal"); psignal(signo, "Shutting down, got signal");
exit(0); exit(0);
}
static void sigreap(int signo) {
while (waitpid(-1, NULL, WNOHANG) > 0)
;
} }
int main() { int main() {
if (signal(SIGINT, sigdown) == SIG_ERR) if (getpid() != 1)
return 1; /* Not an error because pause sees use outside of infra containers. */
if (signal(SIGTERM, sigdown) == SIG_ERR) fprintf(stderr, "Warning: pause should be the first process in a pod\n");
return 2;
signal(SIGKILL, sigdown); if (sigaction(SIGINT, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0)
for (;;) pause(); return 1;
fprintf(stderr, "error: infinite loop terminated\n"); if (sigaction(SIGTERM, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0)
return 42; return 2;
if (sigaction(SIGCHLD, &(struct sigaction){.sa_handler = sigreap,
.sa_flags = SA_NOCLDSTOP},
NULL) < 0)
return 3;
for (;;)
pause();
fprintf(stderr, "Error: infinite loop terminated\n");
return 42;
} }

261
vendor/k8s.io/kubernetes/build/release-tars/BUILD generated vendored Normal file
View file

@ -0,0 +1,261 @@
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)
config_setting(
name = "embed_license_targets",
values = {
"define": "EMBED_LICENSE_TARGETS=true",
},
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes-src",
extension = "tar.gz",
files = [
"//:all-srcs",
],
package_dir = "kubernetes",
strip_prefix = "//",
)
# FIXME: this should be configurable/auto-detected
PLATFORM_ARCH_STRING = "linux-amd64"
# KUBE_CLIENT_TARGETS
CLIENT_TARGETS = [
"//cmd/kubectl",
"//federation/cmd/kubefed",
]
# KUBE_NODE_TARGETS
NODE_TARGETS = [
"//cmd/kube-proxy",
"//cmd/kubelet",
]
# KUBE_SERVER_TARGETS
# No need to duplicate CLIENT_TARGETS or NODE_TARGETS here,
# since we include them in the actual build rule.
SERVER_TARGETS = [
"//cmd/hyperkube",
"//cmd/kube-aggregator",
"//cmd/kube-apiserver",
"//cmd/kube-controller-manager",
"//cmd/kube-discovery",
"//cmd/kubeadm",
"//plugin/cmd/kube-scheduler",
]
# kube::golang::test_targets
TEST_BINARY_TARGETS = [
"//cmd/gendocs",
"//cmd/genkubedocs",
"//cmd/genman",
"//cmd/genswaggertypedocs",
"//cmd/genyaml",
"//cmd/linkcheck",
"//cmd/mungedocs",
"//examples/k8petstore/web-server/src",
"//federation/cmd/genfeddocs",
"//test/e2e:e2e.test",
"//vendor:github.com/onsi/ginkgo/ginkgo_bin",
"//cmd/kubemark", # TODO: server platforms only
"//test/e2e_node:e2e_node.test", # TODO: server platforms only
]
TEST_PORTABLE_TARGETS = [
"//federation/develop:all-srcs",
"//hack:e2e.go",
"//hack:federated-ginkgo-e2e.sh",
"//hack:get-build.sh",
"//hack:ginkgo-e2e.sh",
"//hack/e2e-internal:all-srcs",
"//hack/lib:all-srcs",
"//test/e2e/testing-manifests:all-srcs",
"//test/kubemark:all-srcs",
]
# Included in node and server tarballs.
LICENSE_TARGETS = [
"//:Godeps/LICENSES",
":kubernetes-src.tar.gz",
]
pkg_tar(
name = "_client-bin",
files = CLIENT_TARGETS,
mode = "0755",
package_dir = "client/bin",
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes-client-%s" % PLATFORM_ARCH_STRING,
extension = "tar.gz",
package_dir = "kubernetes",
deps = [
":_client-bin",
],
)
pkg_tar(
name = "_node-bin",
files = NODE_TARGETS + CLIENT_TARGETS,
mode = "0755",
package_dir = "node/bin",
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes-node-%s" % PLATFORM_ARCH_STRING,
extension = "tar.gz",
files = select({
":embed_license_targets": LICENSE_TARGETS,
"//conditions:default": [],
}),
mode = "0644",
package_dir = "kubernetes",
deps = [
":_node-bin",
],
)
pkg_tar(
name = "_server-bin",
files = SERVER_TARGETS + NODE_TARGETS + CLIENT_TARGETS + [
"//build:docker-artifacts",
],
mode = "0755",
package_dir = "server/bin",
visibility = ["//visibility:private"],
)
genrule(
name = "dummy",
outs = [".dummy"],
cmd = "touch $@",
)
# Some of the startup scripts fail if there isn't an addons/ directory in the server tarball.
pkg_tar(
name = "_server-addons",
files = [
":.dummy",
],
package_dir = "addons",
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes-server-%s" % PLATFORM_ARCH_STRING,
extension = "tar.gz",
files = select({
":embed_license_targets": LICENSE_TARGETS,
"//conditions:default": [],
}),
mode = "0644",
package_dir = "kubernetes",
deps = [
":_server-addons",
":_server-bin",
],
)
pkg_tar(
name = "_test-bin",
files = TEST_BINARY_TARGETS,
mode = "0755",
package_dir = "platforms/" + PLATFORM_ARCH_STRING.replace("-", "/"),
# TODO: how to make this multiplatform?
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes-test",
extension = "tar.gz",
files = TEST_PORTABLE_TARGETS,
package_dir = "kubernetes",
strip_prefix = "//",
deps = [
# TODO: how to make this multiplatform?
":_test-bin",
],
)
pkg_tar(
name = "_full_server",
files = [
":kubernetes-manifests.tar.gz",
":kubernetes-salt.tar.gz",
],
package_dir = "server",
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes",
extension = "tar.gz",
files = [
# TODO: the version file
"//:README.md",
"//:Vagrantfile",
"//cluster:all-srcs",
"//docs:all-srcs",
"//examples:all-srcs",
"//third_party/htpasswd:all-srcs",
] + select({
":embed_license_targets": ["//:Godeps/LICENSES"],
"//conditions:default": [],
}),
package_dir = "kubernetes",
strip_prefix = "//",
deps = [
":_full_server",
"//federation:release",
],
)
pkg_tar(
name = "kubernetes-manifests",
extension = "tar.gz",
deps = [
"//cluster:manifests",
],
)
pkg_tar(
name = "kubernetes-salt",
extension = "tar.gz",
deps = [
"//cluster/saltbase:salt",
],
)
filegroup(
name = "release-tars",
srcs = [
":kubernetes.tar.gz",
":kubernetes-client-%s.tar.gz" % PLATFORM_ARCH_STRING,
":kubernetes-node-%s.tar.gz" % PLATFORM_ARCH_STRING,
":kubernetes-server-%s.tar.gz" % PLATFORM_ARCH_STRING,
":kubernetes-manifests.tar.gz",
":kubernetes-salt.tar.gz",
":kubernetes-src.tar.gz",
":kubernetes-test.tar.gz",
],
)

View file

@ -1,5 +1,7 @@
package(default_visibility = ["//visibility:public"]) package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
licenses(["notice"]) licenses(["notice"])
filegroup( filegroup(
@ -14,6 +16,31 @@ filegroup(
srcs = [ srcs = [
":package-srcs", ":package-srcs",
"//cluster/addons:all-srcs", "//cluster/addons:all-srcs",
"//cluster/gce:all-srcs",
"//cluster/saltbase:all-srcs",
], ],
tags = ["automanaged"], tags = ["automanaged"],
) )
# All of the manifests that are expected to be in a "gci-trusty"
# subdir of the manifests tarball.
pkg_tar(
name = "_manifests-gci-trusty",
package_dir = "gci-trusty",
visibility = ["//visibility:private"],
deps = [
"//cluster/addons",
"//cluster/gce:gci-trusty-manifests",
"//cluster/saltbase:gci-trusty-salt-manifests",
],
)
pkg_tar(
name = "manifests",
mode = "0644",
package_dir = "kubernetes",
deps = [
":_manifests-gci-trusty",
"//cluster/saltbase:salt-manifests",
],
)

View file

@ -1,4 +1,10 @@
assignees: reviewers:
- eparis
- jbeda
- mikedanese
- roberthbailey
- zmerlynn
approvers:
- eparis - eparis
- jbeda - jbeda
- mikedanese - mikedanese

View file

@ -4,21 +4,14 @@ load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
filegroup( filegroup(
name = "addon-srcs", name = "addon-srcs",
srcs = glob([ srcs = glob(
"calico-policy-controller/*", [
"cluster-loadbalancing/*", "**/*.json",
"cluster-monitoring/*", "**/*.yaml",
"dashboard/*", "**/*.yaml.in",
"dns/*", ],
"etcd-empty-dir-cleanup/*", exclude = ["**/*demo*/**"],
"fluentd-elasticsearch/*", ),
"fluentd-gcp/*",
"gci/*",
"node-problem-detector/*",
"podsecuritypolicies/*",
"python-image/*",
"registry/*",
]),
) )
pkg_tar( pkg_tar(
@ -27,6 +20,7 @@ pkg_tar(
files = [ files = [
":addon-srcs", ":addon-srcs",
], ],
mode = "0644",
strip_prefix = ".", strip_prefix = ".",
) )

View file

@ -1,3 +1,6 @@
assignees: approvers:
- DirectXMan12 - DirectXMan12
- piosz - piosz
reviewers:
- DirectXMan12
- piosz

View file

@ -1,3 +1,6 @@
assignees: approvers:
- bowei
- mrhohn
reviewers:
- bowei - bowei
- mrhohn - mrhohn

View file

@ -1,3 +1,6 @@
assignees: approvers:
- bowei
- mrhohn
reviewers:
- bowei - bowei
- mrhohn - mrhohn

View file

@ -47,7 +47,7 @@ spec:
spec: spec:
containers: containers:
- name: kubedns - name: kubedns
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.11.0
resources: resources:
# TODO: Set memory limits when we've profiled the container for large # TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in # clusters, then set request = limit to keep this container in
@ -96,7 +96,7 @@ spec:
name: metrics name: metrics
protocol: TCP protocol: TCP
- name: dnsmasq - name: dnsmasq
image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthcheck/dnsmasq path: /healthcheck/dnsmasq
@ -124,7 +124,7 @@ spec:
cpu: 150m cpu: 150m
memory: 10Mi memory: 10Mi
- name: sidecar - name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /metrics path: /metrics

View file

@ -47,7 +47,7 @@ spec:
spec: spec:
containers: containers:
- name: kubedns - name: kubedns
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.11.0
resources: resources:
# TODO: Set memory limits when we've profiled the container for large # TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in # clusters, then set request = limit to keep this container in
@ -96,7 +96,7 @@ spec:
name: metrics name: metrics
protocol: TCP protocol: TCP
- name: dnsmasq - name: dnsmasq
image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthcheck/dnsmasq path: /healthcheck/dnsmasq
@ -124,7 +124,7 @@ spec:
cpu: 150m cpu: 150m
memory: 10Mi memory: 10Mi
- name: sidecar - name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /metrics path: /metrics

View file

@ -47,7 +47,7 @@ spec:
spec: spec:
containers: containers:
- name: kubedns - name: kubedns
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.11.0
resources: resources:
# TODO: Set memory limits when we've profiled the container for large # TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in # clusters, then set request = limit to keep this container in
@ -95,7 +95,7 @@ spec:
name: metrics name: metrics
protocol: TCP protocol: TCP
- name: dnsmasq - name: dnsmasq
image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthcheck/dnsmasq path: /healthcheck/dnsmasq
@ -123,7 +123,7 @@ spec:
cpu: 150m cpu: 150m
memory: 10Mi memory: 10Mi
- name: sidecar - name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.10.1 image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /metrics path: /metrics

View file

@ -1,19 +0,0 @@
# This is the main user for the e2e tests. This is ok to leave long term
# since the first user in the test can reasonably be high power
# its kubecfg in gce
# TODO consider provisioning each test its namespace and giving it an
# admin user. This still has to exist, but e2e wouldn't normally use it
apiVersion: rbac.authorization.k8s.io/v1alpha1
kind: ClusterRoleBinding
metadata:
name: e2e-user-cluster-admin
labels:
kubernetes.io/cluster-service: "true"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- apiVersion: rbac/v1alpha1
kind: User
name: kubecfg

View file

@ -1,3 +1,6 @@
assignees: approvers:
- Crassirostris - Crassirostris
- piosz - piosz
reviewers:
- Crassirostris
- piosz

View file

@ -20,7 +20,7 @@ spec:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
spec: spec:
containers: containers:
- image: gcr.io/google_containers/elasticsearch:v2.4.1 - image: gcr.io/google_containers/elasticsearch:v2.4.1-1
name: elasticsearch-logging name: elasticsearch-logging
resources: resources:
# need more cpu upon initialization, therefore burstable class # need more cpu upon initialization, therefore burstable class

View file

@ -16,7 +16,7 @@
# The current value of the tag to be used for building and # The current value of the tag to be used for building and
# pushing an image to gcr.io # pushing an image to gcr.io
TAG = v2.4.1 TAG = v2.4.1-1
build: elasticsearch_logging_discovery build: elasticsearch_logging_discovery
docker build --pull -t gcr.io/google_containers/elasticsearch:$(TAG) . docker build --pull -t gcr.io/google_containers/elasticsearch:$(TAG) .

View file

@ -1,5 +1,6 @@
cluster.name: kubernetes-logging cluster.name: kubernetes-logging
node.name: ${NODE_NAME}
node.master: ${NODE_MASTER} node.master: ${NODE_MASTER}
node.data: ${NODE_DATA} node.data: ${NODE_DATA}

View file

@ -24,9 +24,10 @@ import (
"time" "time"
"github.com/golang/glog" "github.com/golang/glog"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
restclient "k8s.io/client-go/rest"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/restclient"
) )
func flattenSubsets(subsets []api.EndpointSubset) []string { func flattenSubsets(subsets []api.EndpointSubset) []string {
@ -52,10 +53,10 @@ func main() {
if err != nil { if err != nil {
glog.Fatalf("Failed to make client: %v", err) glog.Fatalf("Failed to make client: %v", err)
} }
namespace := api.NamespaceSystem namespace := metav1.NamespaceSystem
envNamespace := os.Getenv("NAMESPACE") envNamespace := os.Getenv("NAMESPACE")
if envNamespace != "" { if envNamespace != "" {
if _, err := client.Core().Namespaces().Get(envNamespace); err != nil { if _, err := client.Core().Namespaces().Get(envNamespace, meta_v1.GetOptions{}); err != nil {
glog.Fatalf("%s namespace doesn't exist: %v", envNamespace, err) glog.Fatalf("%s namespace doesn't exist: %v", envNamespace, err)
} }
namespace = envNamespace namespace = envNamespace
@ -65,7 +66,7 @@ func main() {
// Look for endpoints associated with the Elasticsearch loggging service. // Look for endpoints associated with the Elasticsearch loggging service.
// First wait for the service to become available. // First wait for the service to become available.
for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) { for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) {
elasticsearch, err = client.Core().Services(namespace).Get("elasticsearch-logging") elasticsearch, err = client.Core().Services(namespace).Get("elasticsearch-logging", meta_v1.GetOptions{})
if err == nil { if err == nil {
break break
} }
@ -82,7 +83,7 @@ func main() {
// Wait for some endpoints. // Wait for some endpoints.
count := 0 count := 0
for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) { for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) {
endpoints, err = client.Core().Endpoints(namespace).Get("elasticsearch-logging") endpoints, err = client.Core().Endpoints(namespace).Get("elasticsearch-logging", meta_v1.GetOptions{})
if err != nil { if err != nil {
continue continue
} }

View file

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
export NODE_NAME=${NODE_NAME:-${HOSTNAME}}
export NODE_MASTER=${NODE_MASTER:-true} export NODE_MASTER=${NODE_MASTER:-true}
export NODE_DATA=${NODE_DATA:-true} export NODE_DATA=${NODE_DATA:-true}
export HTTP_PORT=${HTTP_PORT:-9200} export HTTP_PORT=${HTTP_PORT:-9200}

View file

@ -1,3 +1,6 @@
assignees: approvers:
- Crassirostris - Crassirostris
- piosz - piosz
reviewers:
- Crassirostris
- piosz

View file

@ -2,23 +2,23 @@
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: fluentd-gcp-v1.31 name: fluentd-gcp-v1.34
namespace: kube-system namespace: kube-system
labels: labels:
k8s-app: fluentd-gcp k8s-app: fluentd-gcp
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
version: v1.31 version: v1.34
spec: spec:
template: template:
metadata: metadata:
labels: labels:
k8s-app: fluentd-gcp k8s-app: fluentd-gcp
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
version: v1.31 version: v1.34
spec: spec:
containers: containers:
- name: fluentd-gcp - name: fluentd-gcp
image: gcr.io/google_containers/fluentd-gcp:1.32 image: gcr.io/google_containers/fluentd-gcp:1.34
# If fluentd consumes its own logs, the following situation may happen: # If fluentd consumes its own logs, the following situation may happen:
# fluentd fails to send a chunk to the server => writes it to the log => # fluentd fails to send a chunk to the server => writes it to the log =>
# tries to send this message to the server => fails to send a chunk and so on. # tries to send this message to the server => fails to send a chunk and so on.
@ -40,8 +40,6 @@ spec:
- name: varlibdockercontainers - name: varlibdockercontainers
mountPath: /var/lib/docker/containers mountPath: /var/lib/docker/containers
readOnly: true readOnly: true
- name: libsystemddir
mountPath: /host/lib
# Liveness probe is aimed to help in situarions where fluentd # Liveness probe is aimed to help in situarions where fluentd
# silently hangs for no apparent reasons until manual restart. # silently hangs for no apparent reasons until manual restart.
# The idea of this probe is that if fluentd is not queueing or # The idea of this probe is that if fluentd is not queueing or
@ -84,6 +82,3 @@ spec:
- name: varlibdockercontainers - name: varlibdockercontainers
hostPath: hostPath:
path: /var/lib/docker/containers path: /var/lib/docker/containers
- name: libsystemddir
hostPath:
path: /usr/lib64

View file

@ -36,6 +36,7 @@ RUN apt-get -qq update && \
td-agent-gem install --no-document fluent-plugin-record-reformer -v 0.8.2 && \ td-agent-gem install --no-document fluent-plugin-record-reformer -v 0.8.2 && \
td-agent-gem install --no-document fluent-plugin-systemd -v 0.0.5 && \ td-agent-gem install --no-document fluent-plugin-systemd -v 0.0.5 && \
td-agent-gem install --no-document fluent-plugin-google-cloud -v 0.5.2 && \ td-agent-gem install --no-document fluent-plugin-google-cloud -v 0.5.2 && \
td-agent-gem install --no-document fluent-plugin-detect-exceptions -v 0.0.4 && \
# Remove build tools # Remove build tools
apt-get remove -y -qq gcc make && \ apt-get remove -y -qq gcc make && \
apt-get autoremove -y -qq && \ apt-get autoremove -y -qq && \

View file

@ -26,7 +26,7 @@
.PHONY: build push .PHONY: build push
PREFIX=gcr.io/google_containers PREFIX=gcr.io/google_containers
TAG = 1.32 TAG = 1.34
build: build:
docker build --pull -t $(PREFIX)/fluentd-gcp:$(TAG) . docker build --pull -t $(PREFIX)/fluentd-gcp:$(TAG) .

View file

@ -70,7 +70,18 @@
<match reform.**> <match reform.**>
type record_reformer type record_reformer
enable_ruby true enable_ruby true
tag kubernetes.${tag_suffix[4].split('-')[0..-2].join('-')} tag raw.kubernetes.${tag_suffix[4].split('-')[0..-2].join('-')}
</match>
# Detect exceptions in the log output and forward them as one log entry.
<match raw.kubernetes.**>
type detect_exceptions
remove_tag_prefix raw
message log
stream stream
multiline_flush_interval 5
max_bytes 500000
max_lines 1000
</match> </match>
# Example: # Example:

View file

@ -17,12 +17,6 @@
# For systems without journald # For systems without journald
mkdir -p /var/log/journal mkdir -p /var/log/journal
if [ -e /host/lib/libsystemd* ]
then
rm /lib/x86_64-linux-gnu/libsystemd*
cp /host/lib/libsystemd* /lib/x86_64-linux-gnu/
fi
LD_PRELOAD=/opt/td-agent/embedded/lib/libjemalloc.so LD_PRELOAD=/opt/td-agent/embedded/lib/libjemalloc.so
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9

View file

@ -151,7 +151,7 @@ NODE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION}"
KUBE_NODE_IMAGE="${KUBE_NODE_IMAGE:-}" KUBE_NODE_IMAGE="${KUBE_NODE_IMAGE:-}"
COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}" COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}"
CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}" CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}"
RKT_VERSION="${KUBE_RKT_VERSION:-1.14.0}" RKT_VERSION="${KUBE_RKT_VERSION:-1.23.0}"
NETWORK_PROVIDER="${NETWORK_PROVIDER:-kubenet}" # kubenet, opencontrail, flannel NETWORK_PROVIDER="${NETWORK_PROVIDER:-kubenet}" # kubenet, opencontrail, flannel

View file

@ -137,7 +137,7 @@ NODE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION}"
KUBE_NODE_IMAGE="${KUBE_NODE_IMAGE:-}" KUBE_NODE_IMAGE="${KUBE_NODE_IMAGE:-}"
COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}" COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}"
CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}" CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}"
RKT_VERSION="${KUBE_RKT_VERSION:-1.14.0}" RKT_VERSION="${KUBE_RKT_VERSION:-1.23.0}"
NETWORK_PROVIDER="${NETWORK_PROVIDER:-kubenet}" # kubenet, opencontrail, flannel NETWORK_PROVIDER="${NETWORK_PROVIDER:-kubenet}" # kubenet, opencontrail, flannel

View file

@ -570,18 +570,6 @@ function verify-prereqs {
fi fi
} }
# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
function ensure-temp-dir {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap 'rm -rf "${KUBE_TEMP}"' EXIT
fi
}
# Take the local tar files and upload them to S3. They will then be # Take the local tar files and upload them to S3. They will then be
# downloaded by the master as part of the start up script for the master. # downloaded by the master as part of the start up script for the master.
# #

View file

@ -100,17 +100,6 @@ function verify-prereqs {
echo "==> CONTAINER: $CONTAINER" echo "==> CONTAINER: $CONTAINER"
} }
# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
function ensure-temp-dir {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap 'rm -rf "${KUBE_TEMP}"' EXIT
fi
}
# Take the local tar files and upload them to Azure Storage. They will then be # Take the local tar files and upload them to Azure Storage. They will then be
# downloaded by the master as part of the start up script for the master. # downloaded by the master as part of the start up script for the master.
# #

View file

@ -308,6 +308,17 @@ function load-or-gen-kube-bearertoken() {
fi fi
} }
# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
function ensure-temp-dir {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap 'rm -rf "${KUBE_TEMP}"' EXIT
fi
}
# Get the master IP for the current-context in kubeconfig if one exists. # Get the master IP for the current-context in kubeconfig if one exists.
# #
# Assumed vars: # Assumed vars:
@ -412,6 +423,30 @@ function tars_from_version() {
fi fi
} }
# Search for the specified tarball in the various known output locations,
# echoing the location if found.
#
# Assumed vars:
# KUBE_ROOT
#
# Args:
# $1 name of tarball to search for
function find-tar() {
local -r tarball=$1
locations=(
"${KUBE_ROOT}/server/${tarball}"
"${KUBE_ROOT}/_output/release-tars/${tarball}"
"${KUBE_ROOT}/bazel-bin/build/release-tars/${tarball}"
)
location=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 )
if [[ ! -f "${location}" ]]; then
echo "!!! Cannot find ${tarball}" >&2
exit 1
fi
echo "${location}"
}
# Verify and find the various tar files that we are going to use on the server. # Verify and find the various tar files that we are going to use on the server.
# #
# Assumed vars: # Assumed vars:
@ -421,36 +456,14 @@ function tars_from_version() {
# SALT_TAR # SALT_TAR
# KUBE_MANIFESTS_TAR # KUBE_MANIFESTS_TAR
function find-release-tars() { function find-release-tars() {
SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" SERVER_BINARY_TAR=$(find-tar kubernetes-server-linux-amd64.tar.gz)
if [[ ! -f "${SERVER_BINARY_TAR}" ]]; then SALT_TAR=$(find-tar kubernetes-salt.tar.gz)
SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz"
fi
if [[ ! -f "${SERVER_BINARY_TAR}" ]]; then
echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" >&2
exit 1
fi
SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz"
if [[ ! -f "${SALT_TAR}" ]]; then
SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz"
fi
if [[ ! -f "${SALT_TAR}" ]]; then
echo "!!! Cannot find kubernetes-salt.tar.gz" >&2
exit 1
fi
# This tarball is used by GCI, Ubuntu Trusty, and Container Linux. # This tarball is used by GCI, Ubuntu Trusty, and Container Linux.
KUBE_MANIFESTS_TAR= KUBE_MANIFESTS_TAR=
if [[ "${MASTER_OS_DISTRIBUTION:-}" == "trusty" || "${MASTER_OS_DISTRIBUTION:-}" == "gci" || "${MASTER_OS_DISTRIBUTION:-}" == "container-linux" ]] || \ if [[ "${MASTER_OS_DISTRIBUTION:-}" == "trusty" || "${MASTER_OS_DISTRIBUTION:-}" == "gci" || "${MASTER_OS_DISTRIBUTION:-}" == "container-linux" ]] || \
[[ "${NODE_OS_DISTRIBUTION:-}" == "trusty" || "${NODE_OS_DISTRIBUTION:-}" == "gci" || "${NODE_OS_DISTRIBUTION:-}" == "container-linux" ]] ; then [[ "${NODE_OS_DISTRIBUTION:-}" == "trusty" || "${NODE_OS_DISTRIBUTION:-}" == "gci" || "${NODE_OS_DISTRIBUTION:-}" == "container-linux" ]] ; then
KUBE_MANIFESTS_TAR="${KUBE_ROOT}/server/kubernetes-manifests.tar.gz" KUBE_MANIFESTS_TAR=$(find-tar kubernetes-manifests.tar.gz)
if [[ ! -f "${KUBE_MANIFESTS_TAR}" ]]; then
KUBE_MANIFESTS_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-manifests.tar.gz"
fi
if [[ ! -f "${KUBE_MANIFESTS_TAR}" ]]; then
echo "!!! Cannot find kubernetes-manifests.tar.gz" >&2
exit 1
fi
fi fi
} }
@ -573,6 +586,7 @@ function build-kube-master-certs {
KUBEAPISERVER_CERT: $(yaml-quote ${KUBEAPISERVER_CERT_BASE64:-}) KUBEAPISERVER_CERT: $(yaml-quote ${KUBEAPISERVER_CERT_BASE64:-})
KUBEAPISERVER_KEY: $(yaml-quote ${KUBEAPISERVER_KEY_BASE64:-}) KUBEAPISERVER_KEY: $(yaml-quote ${KUBEAPISERVER_KEY_BASE64:-})
KUBELET_AUTH_CA_CERT: $(yaml-quote ${KUBELET_AUTH_CA_CERT_BASE64:-}) KUBELET_AUTH_CA_CERT: $(yaml-quote ${KUBELET_AUTH_CA_CERT_BASE64:-})
CA_KEY: $(yaml-quote ${CA_KEY_BASE64:-})
EOF EOF
} }
@ -719,7 +733,7 @@ ENABLE_MANIFEST_URL: $(yaml-quote ${ENABLE_MANIFEST_URL:-false})
MANIFEST_URL: $(yaml-quote ${MANIFEST_URL:-}) MANIFEST_URL: $(yaml-quote ${MANIFEST_URL:-})
MANIFEST_URL_HEADER: $(yaml-quote ${MANIFEST_URL_HEADER:-}) MANIFEST_URL_HEADER: $(yaml-quote ${MANIFEST_URL_HEADER:-})
NUM_NODES: $(yaml-quote ${NUM_NODES}) NUM_NODES: $(yaml-quote ${NUM_NODES})
STORAGE_BACKEND: $(yaml-quote ${STORAGE_BACKEND:-etcd2}) STORAGE_BACKEND: $(yaml-quote ${STORAGE_BACKEND:-etcd3})
ENABLE_GARBAGE_COLLECTOR: $(yaml-quote ${ENABLE_GARBAGE_COLLECTOR:-}) ENABLE_GARBAGE_COLLECTOR: $(yaml-quote ${ENABLE_GARBAGE_COLLECTOR:-})
MASTER_ADVERTISE_ADDRESS: $(yaml-quote ${MASTER_ADVERTISE_ADDRESS:-}) MASTER_ADVERTISE_ADDRESS: $(yaml-quote ${MASTER_ADVERTISE_ADDRESS:-})
ETCD_CA_KEY: $(yaml-quote ${ETCD_CA_KEY_BASE64:-}) ETCD_CA_KEY: $(yaml-quote ${ETCD_CA_KEY_BASE64:-})
@ -948,6 +962,7 @@ function create-certs {
CERT_DIR="${KUBE_TEMP}/easy-rsa-master/easyrsa3" CERT_DIR="${KUBE_TEMP}/easy-rsa-master/easyrsa3"
# By default, linux wraps base64 output every 76 cols, so we use 'tr -d' to remove whitespaces. # By default, linux wraps base64 output every 76 cols, so we use 'tr -d' to remove whitespaces.
# Note 'base64 -w0' doesn't work on Mac OS X, which has different flags. # Note 'base64 -w0' doesn't work on Mac OS X, which has different flags.
CA_KEY_BASE64=$(cat "${CERT_DIR}/pki/private/ca.key" | base64 | tr -d '\r\n')
CA_CERT_BASE64=$(cat "${CERT_DIR}/pki/ca.crt" | base64 | tr -d '\r\n') CA_CERT_BASE64=$(cat "${CERT_DIR}/pki/ca.crt" | base64 | tr -d '\r\n')
MASTER_CERT_BASE64=$(cat "${CERT_DIR}/pki/issued/${MASTER_NAME}.crt" | base64 | tr -d '\r\n') MASTER_CERT_BASE64=$(cat "${CERT_DIR}/pki/issued/${MASTER_NAME}.crt" | base64 | tr -d '\r\n')
MASTER_KEY_BASE64=$(cat "${CERT_DIR}/pki/private/${MASTER_NAME}.key" | base64 | tr -d '\r\n') MASTER_KEY_BASE64=$(cat "${CERT_DIR}/pki/private/${MASTER_NAME}.key" | base64 | tr -d '\r\n')
@ -995,7 +1010,12 @@ function generate-certs {
mv "kubelet.pem" "pki/issued/kubelet.crt" mv "kubelet.pem" "pki/issued/kubelet.crt"
rm -f "kubelet.csr" rm -f "kubelet.csr"
./easyrsa build-client-full kubecfg nopass # Make a superuser client cert with subject "O=system:masters, CN=kubecfg"
./easyrsa --dn-mode=org \
--req-cn=kubecfg --req-org=system:masters \
--req-c= --req-st= --req-city= --req-email= --req-ou= \
build-client-full kubecfg nopass
cd ../kubelet cd ../kubelet
./easyrsa init-pki ./easyrsa init-pki
./easyrsa --batch "--req-cn=kubelet@$(date +%s)" build-ca nopass ./easyrsa --batch "--req-cn=kubelet@$(date +%s)" build-ca nopass
@ -1049,7 +1069,7 @@ function update-or-verify-gcloud() {
${sudo_prefix} gcloud ${gcloud_prompt:-} components install beta ${sudo_prefix} gcloud ${gcloud_prompt:-} components install beta
${sudo_prefix} gcloud ${gcloud_prompt:-} components update ${sudo_prefix} gcloud ${gcloud_prompt:-} components update
else else
local version=$(${sudo_prefix} gcloud version --format=json) local version=$(gcloud version --format=json)
python -c' python -c'
import json,sys import json,sys
from distutils import version from distutils import version

37
vendor/k8s.io/kubernetes/cluster/gce/BUILD generated vendored Normal file
View file

@ -0,0 +1,37 @@
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
pkg_tar(
name = "gci-trusty-manifests",
files = [
"container-linux/configure-helper.sh",
"gci/configure-helper.sh",
"gci/health-monitor.sh",
"gci/mounter/mounter",
"trusty/configure-helper.sh",
],
mode = "0755",
strip_prefix = ".",
# pkg_tar doesn't support renaming the files we add, so instead create symlinks.
symlinks = {
"container-linux-configure-helper.sh": "container-linux/configure-helper.sh",
"gci-configure-helper.sh": "gci/configure-helper.sh",
"health-monitor.sh": "gci/health-monitor.sh",
"gci-mounter": "gci/mounter/mounter",
"trusty-configure-helper.sh": "trusty/configure-helper.sh",
},
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)

View file

@ -46,18 +46,26 @@ if [[ "${NODE_OS_DISTRIBUTION}" == "coreos" ]]; then
NODE_OS_DISTRIBUTION="container-linux" NODE_OS_DISTRIBUTION="container-linux"
fi fi
if [[ "${MASTER_OS_DISTRIBUTION}" == "cos" ]]; then
MASTER_OS_DISTRIBUTION="gci"
fi
if [[ "${NODE_OS_DISTRIBUTION}" == "cos" ]]; then
NODE_OS_DISTRIBUTION="gci"
fi
# By default a cluster will be started with the master on GCI and nodes on # By default a cluster will be started with the master on GCI and nodes on
# containervm. If you are updating the containervm version, update this # containervm. If you are updating the containervm version, update this
# variable. Also please update corresponding image for node e2e at: # variable. Also please update corresponding image for node e2e at:
# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml # https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
CVM_VERSION=container-vm-v20161208 CVM_VERSION=${CVM_VERSION:-container-vm-v20170117}
GCI_VERSION=${KUBE_GCI_VERSION:-gci-dev-56-8977-0-0} GCI_VERSION=${KUBE_GCI_VERSION:-gci-dev-56-8977-0-0}
MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-} MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-google-containers} MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-google-containers}
NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${CVM_VERSION}} NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${CVM_VERSION}}
NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-google-containers} NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-google-containers}
CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker} CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker}
RKT_VERSION=${KUBE_RKT_VERSION:-1.14.0} RKT_VERSION=${KUBE_RKT_VERSION:-1.23.0}
RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos} RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos}
NETWORK=${KUBE_GCE_NETWORK:-default} NETWORK=${KUBE_GCE_NETWORK:-default}

View file

@ -47,11 +47,19 @@ if [[ "${NODE_OS_DISTRIBUTION}" == "coreos" ]]; then
NODE_OS_DISTRIBUTION="container-linux" NODE_OS_DISTRIBUTION="container-linux"
fi fi
if [[ "${MASTER_OS_DISTRIBUTION}" == "cos" ]]; then
MASTER_OS_DISTRIBUTION="gci"
fi
if [[ "${NODE_OS_DISTRIBUTION}" == "cos" ]]; then
NODE_OS_DISTRIBUTION="gci"
fi
# By default a cluster will be started with the master on GCI and nodes on # By default a cluster will be started with the master on GCI and nodes on
# containervm. If you are updating the containervm version, update this # containervm. If you are updating the containervm version, update this
# variable. Also please update corresponding image for node e2e at: # variable. Also please update corresponding image for node e2e at:
# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml # https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
CVM_VERSION=container-vm-v20161208 CVM_VERSION=${CVM_VERSION:-container-vm-v20170117}
GCI_VERSION=${KUBE_GCI_VERSION:-gci-dev-56-8977-0-0} GCI_VERSION=${KUBE_GCI_VERSION:-gci-dev-56-8977-0-0}
MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-} MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-google-containers} MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-google-containers}
@ -59,7 +67,7 @@ NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${CVM_VERSION}}
NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-google-containers} NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-google-containers}
CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker} CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker}
GCI_DOCKER_VERSION=${KUBE_GCI_DOCKER_VERSION:-} GCI_DOCKER_VERSION=${KUBE_GCI_DOCKER_VERSION:-}
RKT_VERSION=${KUBE_RKT_VERSION:-1.14.0} RKT_VERSION=${KUBE_RKT_VERSION:-1.23.0}
RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos} RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos}
NETWORK=${KUBE_GCE_NETWORK:-e2e} NETWORK=${KUBE_GCE_NETWORK:-e2e}

View file

@ -1,4 +1,8 @@
assignees: approvers:
- euank - euank
- yifan-gu - yifan-gu
- ethernetdan - ethernetdan
reviewers:
- euank
- yifan-gu
- ethernetdan

View file

@ -68,7 +68,7 @@ function safe-format-and-mount() {
# Format only if the disk is not already formatted. # Format only if the disk is not already formatted.
if ! tune2fs -l "${device}" ; then if ! tune2fs -l "${device}" ; then
echo "Formatting '${device}'" echo "Formatting '${device}'"
mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard "${device}" mkfs.ext4 -F "${device}"
fi fi
mkdir -p "${mountpoint}" mkdir -p "${mountpoint}"
@ -215,6 +215,9 @@ function create-master-auth {
echo "${MASTER_CERT}" | base64 --decode > "${auth_dir}/server.cert" echo "${MASTER_CERT}" | base64 --decode > "${auth_dir}/server.cert"
echo "${MASTER_KEY}" | base64 --decode > "${auth_dir}/server.key" echo "${MASTER_KEY}" | base64 --decode > "${auth_dir}/server.key"
fi fi
if [[ ! -z "${CA_KEY:-}" ]]; then
echo "${CA_KEY}" | base64 --decode > "${auth_dir}/ca.key"
fi
if [ ! -e "${auth_dir}/kubeapiserver.cert" ] && [[ ! -z "${KUBEAPISERVER_CERT:-}" ]] && [[ ! -z "${KUBEAPISERVER_KEY:-}" ]]; then if [ ! -e "${auth_dir}/kubeapiserver.cert" ] && [[ ! -z "${KUBEAPISERVER_CERT:-}" ]] && [[ ! -z "${KUBEAPISERVER_KEY:-}" ]]; then
echo "${KUBEAPISERVER_CERT}" | base64 --decode > "${auth_dir}/kubeapiserver.cert" echo "${KUBEAPISERVER_CERT}" | base64 --decode > "${auth_dir}/kubeapiserver.cert"
echo "${KUBEAPISERVER_KEY}" | base64 --decode > "${auth_dir}/kubeapiserver.key" echo "${KUBEAPISERVER_KEY}" | base64 --decode > "${auth_dir}/kubeapiserver.key"
@ -971,6 +974,10 @@ function start-kube-controller-manager {
if [[ -n "${CLUSTER_IP_RANGE:-}" ]]; then if [[ -n "${CLUSTER_IP_RANGE:-}" ]]; then
params+=" --cluster-cidr=${CLUSTER_IP_RANGE}" params+=" --cluster-cidr=${CLUSTER_IP_RANGE}"
fi fi
if [[ -n "${CA_KEY:-}" ]]; then
params+=" --cluster-signing-cert-file=/etc/srv/kubernetes/ca.crt"
params+=" --cluster-signing-key-file=/etc/srv/kubernetes/ca.key"
fi
if [[ -n "${SERVICE_CLUSTER_IP_RANGE:-}" ]]; then if [[ -n "${SERVICE_CLUSTER_IP_RANGE:-}" ]]; then
params+=" --service-cluster-ip-range=${SERVICE_CLUSTER_IP_RANGE}" params+=" --service-cluster-ip-range=${SERVICE_CLUSTER_IP_RANGE}"
fi fi

View file

@ -116,17 +116,6 @@ function verify-prereqs() {
update-or-verify-gcloud update-or-verify-gcloud
} }
# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
function ensure-temp-dir() {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap 'rm -rf "${KUBE_TEMP}"' EXIT
fi
}
# Use the gcloud defaults to find the project. If it is already set in the # Use the gcloud defaults to find the project. If it is already set in the
# environment then go with that. # environment then go with that.
# #

View file

@ -21,6 +21,7 @@ REGISTRY?=gcr.io/google_containers
ARCH?=amd64 ARCH?=amd64
TEMP_DIR:=$(shell mktemp -d -t hyperkubeXXXXXX) TEMP_DIR:=$(shell mktemp -d -t hyperkubeXXXXXX)
CNI_RELEASE=07a8a28637e97b22eb8dfe710eeae1344f69d16e CNI_RELEASE=07a8a28637e97b22eb8dfe710eeae1344f69d16e
CACHEBUST?=1
UNAME_S:=$(shell uname -s) UNAME_S:=$(shell uname -s)
ifeq ($(UNAME_S),Darwin) ifeq ($(UNAME_S),Darwin)
@ -78,7 +79,9 @@ endif
cd ${TEMP_DIR} && sed -i.back "s|ARCH|${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json cd ${TEMP_DIR} && sed -i.back "s|ARCH|${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json
cd ${TEMP_DIR} && sed -i.back "s|ARCH|${QEMUARCH}|g" Dockerfile cd ${TEMP_DIR} && sed -i.back "s|ARCH|${QEMUARCH}|g" Dockerfile
cd ${TEMP_DIR} && sed -i.back "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile cd ${TEMP_DIR} && sed -i.back "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
ifeq ($(CACHEBUST),1)
cd ${TEMP_DIR} && sed -i.back "s|CACHEBUST|$(shell uuidgen)|g" Dockerfile cd ${TEMP_DIR} && sed -i.back "s|CACHEBUST|$(shell uuidgen)|g" Dockerfile
endif
cd ${TEMP_DIR} && sed -i.back "s|-amd64|-${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml cd ${TEMP_DIR} && sed -i.back "s|-amd64|-${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml
cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__SERVER__|10.0.0.10|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__SERVER__|10.0.0.10|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml
cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__DOMAIN__|cluster.local|g;s|__PILLAR__FEDERATIONS__DOMAIN__MAP__||g;" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__DOMAIN__|cluster.local|g;s|__PILLAR__FEDERATIONS__DOMAIN__MAP__||g;" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml

View file

@ -46,7 +46,7 @@ spec:
spec: spec:
containers: containers:
- name: kubedns - name: kubedns
image: gcr.io/google_containers/kubedns-{{ arch }}:1.9 image: gcr.io/google_containers/k8s-dns-kube-dns-{{ arch }}:1.11.0
resources: resources:
# TODO: Set memory limits when we've profiled the container for large # TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in # clusters, then set request = limit to keep this container in
@ -120,7 +120,7 @@ spec:
name: dns-tcp name: dns-tcp
protocol: TCP protocol: TCP
- name: sidecar - name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.10.0 image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.11.0
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /metrics path: /metrics

View file

@ -76,6 +76,7 @@ if [[ -z "${KUBEADM_PATH:-}" ]]; then
"${KUBE_ROOT}/_output/bin/kubeadm" "${KUBE_ROOT}/_output/bin/kubeadm"
"${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/kubeadm" "${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/kubeadm"
"${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}/kubeadm" "${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}/kubeadm"
"${KUBE_ROOT}/bazel-bin/cmd/kubectl/kubeadm"
"${KUBE_ROOT}/platforms/${host_os}/${host_arch}/kubeadm" "${KUBE_ROOT}/platforms/${host_os}/${host_arch}/kubeadm"
) )
kubeadm=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 ) kubeadm=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 )

View file

@ -88,6 +88,7 @@ if [[ -z "${KUBECTL_PATH:-}" ]]; then
"${KUBE_ROOT}/_output/bin/kubectl" "${KUBE_ROOT}/_output/bin/kubectl"
"${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/kubectl" "${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/kubectl"
"${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}/kubectl" "${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}/kubectl"
"${KUBE_ROOT}/bazel-bin/cmd/kubectl/kubectl"
"${KUBE_ROOT}/platforms/${host_os}/${host_arch}/kubectl" "${KUBE_ROOT}/platforms/${host_os}/${host_arch}/kubectl"
) )
kubectl=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 ) kubectl=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 )

View file

@ -17,7 +17,7 @@
## Contains configuration values for the Openstack cluster ## Contains configuration values for the Openstack cluster
# Stack name # Stack name
STACK_NAME=${STACK_NAME:-KubernetesStack} STACK_NAME=${STACK_NAME:-kube-stack}
# Keypair for kubernetes stack # Keypair for kubernetes stack
KUBERNETES_KEYPAIR_NAME=${KUBERNETES_KEYPAIR_NAME:-kubernetes_keypair} KUBERNETES_KEYPAIR_NAME=${KUBERNETES_KEYPAIR_NAME:-kubernetes_keypair}

View file

@ -251,6 +251,7 @@ resources:
server_name_post_fix: server_name_post_fix:
type: OS::Heat::RandomString type: OS::Heat::RandomString
properties: properties:
character_classes: [{'class': 'lowercase', 'min': 1}]
length: 8 length: 8
kube_minion: kube_minion:

View file

@ -186,7 +186,13 @@ function run-heat-script() {
# Automatically detect swift url if it wasn't specified # Automatically detect swift url if it wasn't specified
if [[ -z $SWIFT_SERVER_URL ]]; then if [[ -z $SWIFT_SERVER_URL ]]; then
SWIFT_SERVER_URL=$(openstack catalog show object-store --format value | egrep -o "publicURL: (.+)$" | cut -d" " -f2) local rgx=""
if [ "$OS_IDENTITY_API_VERSION" = "3" ]; then
rgx="public: (.+)$"
else
rgx="publicURL: (.+)$"
fi
SWIFT_SERVER_URL=$(openstack catalog show object-store --format value | egrep -o "$rgx" | cut -d" " -f2)
fi fi
local swift_repo_url="${SWIFT_SERVER_URL}/kubernetes" local swift_repo_url="${SWIFT_SERVER_URL}/kubernetes"

View file

@ -1030,18 +1030,6 @@ function verify-cmd-in-path {
} }
} }
#
# Checks that KUBE_TEMP is set, or sets it
# If it sets it, it also creates the temporary directory
# and sets up a trap so that we delete it when we exit
#
function ensure-temp-dir {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap-add "rm -rf '${KUBE_TEMP}'" EXIT
fi
}
# #
# Repeatedly try a command over ssh until it succeeds or until five minutes have passed # Repeatedly try a command over ssh until it succeeds or until five minutes have passed
# The timeout isn't exact, since we assume the command runs instantaneously, and # The timeout isn't exact, since we assume the command runs instantaneously, and

87
vendor/k8s.io/kubernetes/cluster/saltbase/BUILD generated vendored Normal file
View file

@ -0,0 +1,87 @@
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)
# TODO(#3579): This is a temporary hack. It gathers up the yaml,
# yaml.in, json files in cluster/addons (minus any demos) and overlays
# them into kube-addons, where we expect them.
# These files are expected in a salt/kube-addons subdirectory.
pkg_tar(
name = "_salt_kube-addons",
package_dir = "salt/kube-addons",
strip_prefix = "/cluster/addons",
visibility = ["//visibility:private"],
deps = [
"//cluster/addons",
],
)
pkg_tar(
name = "salt",
files = glob(
["**"],
exclude = ["BUILD"],
),
mode = "0644",
modes = {
"install.sh": "0755",
},
package_dir = "kubernetes/saltbase",
strip_prefix = ".",
deps = [
":_salt_kube-addons",
],
)
# The following are used in the kubernetes salt tarball.
pkg_tar(
name = "salt-manifests",
files = [
"salt/fluentd-gcp/fluentd-gcp.yaml",
"salt/kube-proxy/kube-proxy.manifest",
"salt/kube-registry-proxy/kube-registry-proxy.yaml",
],
mode = "0644",
)
pkg_tar(
name = "_kube-admission-controls",
files = glob(["salt/kube-admission-controls/limit-range/**"]),
mode = "0644",
# Maintain limit-range/ subdirectory in tarball
strip_prefix = "./salt/kube-admission-controls/",
visibility = ["//visibility:private"],
)
pkg_tar(
name = "gci-trusty-salt-manifests",
files = [
"salt/cluster-autoscaler/cluster-autoscaler.manifest",
"salt/e2e-image-puller/e2e-image-puller.manifest",
"salt/etcd/etcd.manifest",
"salt/kube-addons/kube-addon-manager.yaml",
"salt/kube-apiserver/abac-authz-policy.jsonl",
"salt/kube-apiserver/kube-apiserver.manifest",
"salt/kube-controller-manager/kube-controller-manager.manifest",
"salt/kube-scheduler/kube-scheduler.manifest",
"salt/l7-gcp/glbc.manifest",
"salt/rescheduler/rescheduler.manifest",
],
mode = "0644",
deps = [
"_kube-admission-controls",
],
)

View file

@ -1,3 +1,6 @@
assignees: approvers:
- Crassirostris - Crassirostris
- piosz - piosz
reviewers:
- Crassirostris
- piosz

View file

@ -10,7 +10,7 @@ spec:
dnsPolicy: Default dnsPolicy: Default
containers: containers:
- name: fluentd-cloud-logging - name: fluentd-cloud-logging
image: gcr.io/google_containers/fluentd-gcp:1.32 image: gcr.io/google_containers/fluentd-gcp:1.34
# If fluentd consumes its own logs, the following situation may happen: # If fluentd consumes its own logs, the following situation may happen:
# fluentd fails to send a chunk to the server => writes it to the log => # fluentd fails to send a chunk to the server => writes it to the log =>
# tries to send this message to the server => fails to send a chunk and so on. # tries to send this message to the server => fails to send a chunk and so on.
@ -34,8 +34,6 @@ spec:
- name: varlibdockercontainers - name: varlibdockercontainers
mountPath: /var/lib/docker/containers mountPath: /var/lib/docker/containers
readOnly: true readOnly: true
- name: libsystemddir
mountPath: /host/lib
# Liveness probe is aimed to help in situarions where fluentd # Liveness probe is aimed to help in situarions where fluentd
# silently hangs for no apparent reasons until manual restart. # silently hangs for no apparent reasons until manual restart.
# The idea of this probe is that if fluentd is not queueing or # The idea of this probe is that if fluentd is not queueing or
@ -51,10 +49,23 @@ spec:
- '/bin/sh' - '/bin/sh'
- '-c' - '-c'
- > - >
LIVENESS_THRESHOLD_SECONDS=${LIVENESS_THRESHOLD_SECONDS:-600}; LIVENESS_THRESHOLD_SECONDS=${LIVENESS_THRESHOLD_SECONDS:-300};
STUCK_THRESHOLD_SECONDS=${LIVENESS_THRESHOLD_SECONDS:-900};
if [ ! -e /var/log/fluentd-buffers ];
then
exit 1;
fi;
LAST_MODIFIED_DATE=`stat /var/log/fluentd-buffers | grep Modify | sed -r "s/Modify: (.*)/\1/"`; LAST_MODIFIED_DATE=`stat /var/log/fluentd-buffers | grep Modify | sed -r "s/Modify: (.*)/\1/"`;
LAST_MODIFIED_TIMESTAMP=`date -d "$LAST_MODIFIED_DATE" +%s`; LAST_MODIFIED_TIMESTAMP=`date -d "$LAST_MODIFIED_DATE" +%s`;
if [ `date +%s` -gt `expr $LAST_MODIFIED_TIMESTAMP + $LIVENESS_THRESHOLD_SECONDS` ]; then exit 1; fi; if [ `date +%s` -gt `expr $LAST_MODIFIED_TIMESTAMP + $STUCK_THRESHOLD_SECONDS` ];
then
rm -rf /var/log/fluentd-buffers;
exit 1;
fi;
if [ `date +%s` -gt `expr $LAST_MODIFIED_TIMESTAMP + $LIVENESS_THRESHOLD_SECONDS` ];
then
exit 1;
fi;
terminationGracePeriodSeconds: 30 terminationGracePeriodSeconds: 30
volumes: volumes:
- name: varlog - name: varlog
@ -63,6 +74,3 @@ spec:
- name: varlibdockercontainers - name: varlibdockercontainers
hostPath: hostPath:
path: /var/lib/docker/containers path: /var/lib/docker/containers
- name: libsystemddir
hostPath:
path: /usr/lib64

View file

@ -99,7 +99,11 @@ else
cp -p pki/issued/kubernetes-master.crt "${cert_dir}/server.cert" > /dev/null 2>&1 cp -p pki/issued/kubernetes-master.crt "${cert_dir}/server.cert" > /dev/null 2>&1
cp -p pki/private/kubernetes-master.key "${cert_dir}/server.key" > /dev/null 2>&1 cp -p pki/private/kubernetes-master.key "${cert_dir}/server.key" > /dev/null 2>&1
fi fi
./easyrsa build-client-full kubecfg nopass > /dev/null 2>&1 # Make a superuser client cert with subject "O=system:masters, CN=kubecfg"
./easyrsa --dn-mode=org \
--req-cn=kubecfg --req-org=system:masters \
--req-c= --req-st= --req-city= --req-email= --req-ou= \
build-client-full kubecfg nopass > /dev/null 2>&1
cp -p pki/ca.crt "${cert_dir}/ca.crt" cp -p pki/ca.crt "${cert_dir}/ca.crt"
cp -p pki/issued/kubecfg.crt "${cert_dir}/kubecfg.crt" cp -p pki/issued/kubecfg.crt "${cert_dir}/kubecfg.crt"
cp -p pki/private/kubecfg.key "${cert_dir}/kubecfg.key" cp -p pki/private/kubecfg.key "${cert_dir}/kubecfg.key"

View file

@ -22,12 +22,9 @@
FSCK=fsck.ext4 FSCK=fsck.ext4
MOUNT_OPTIONS="discard,defaults" MOUNT_OPTIONS="discard,defaults"
MKFS="mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 -F" MKFS="mkfs.ext4 -F"
if [ -e /etc/redhat-release ]; then if [ -e /etc/redhat-release ]; then
if grep -q '6\..' /etc/redhat-release; then if grep -q '7\..' /etc/redhat-release; then
# lazy_journal_init is not recognized in redhat 6
MKFS="mkfs.ext4 -E lazy_itable_init=0 -F"
elif grep -q '7\..' /etc/redhat-release; then
FSCK=fsck.xfs FSCK=fsck.xfs
MKFS=mkfs.xfs MKFS=mkfs.xfs
fi fi

View file

@ -104,17 +104,6 @@ function verify-prereqs {
export USING_KUBE_SCRIPTS=true export USING_KUBE_SCRIPTS=true
} }
# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
function ensure-temp-dir {
if [[ -z ${KUBE_TEMP-} ]]; then
export KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
trap 'rm -rf "${KUBE_TEMP}"' EXIT
fi
}
# Create a set of provision scripts for the master and each of the nodes # Create a set of provision scripts for the master and each of the nodes
function create-provision-scripts { function create-provision-scripts {
ensure-temp-dir ensure-temp-dir

View file

@ -0,0 +1,91 @@
# Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# kube-startup.ps1 is used to run kubelet and kubeproxy as a process. It uses nssm (https://nssm.cc/) process manager to register kubelet and kube-proxy process,
# The processes can be viewed using TaskManager(Taskmgr.exe).
# Please note that this startup script does not start the API server. Kubernetes control plane currently runs on Linux
# and only Kubelet and Kube-Proxy can be run on Windows
param (
[Parameter(Mandatory=$true)][string]$ContainerNetwork,
[string]$InterfaceForServiceIP = "vEthernet (HNS Internal NIC)",
[string]$LogDirectory = "C:\temp",
[Parameter(Mandatory=$true)][string]$Hostname,
[Parameter(Mandatory=$true)][string]$APIServer,
[string]$InfraContainerImage = "apprenda/pause",
[string]$ClusterDNS = "10.0.0.10",
[string]$KubeletExePath = ".\kubelet.exe",
[string]$KubeProxyExePath = ".\kube-proxy.exe"
)
$kubeletDirectory = (Get-Item $KubeletExePath).Directory.FullName
$kubeproxyDirectory = (Get-Item $KubeProxyExePath).Directory.FullName
# Assemble the Kubelet executable arguments
$kubeletArgs = @("--hostname-override=$Hostname","--pod-infra-container-image=$InfraContainerImage","--resolv-conf=""""","--api-servers=$APIServer","--cluster-dns=$ClusterDNS")
# Assemble the kube-proxy executable arguments
$kubeproxyArgs = @("--hostname-override=$Hostname","--proxy-mode=userspace","--bind-address=$Hostname","--master=$APIServer")
# Setup kubelet service
nssm install kubelet "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
nssm set kubelet Application "$KubeletExePath"
nssm set kubelet AppDirectory "$kubeletDirectory"
nssm set kubelet AppParameters $kubeletArgs
nssm set kubelet DisplayName kubelet
nssm set kubelet Description kubelet
nssm set kubelet Start SERVICE_AUTO_START
nssm set kubelet ObjectName LocalSystem
nssm set kubelet Type SERVICE_WIN32_OWN_PROCESS
# Delay restart if application runs for less than 1500 ms
nssm set kubelet AppThrottle 1500
nssm set kubelet AppStdout "$LogDirectory\kubelet.log"
nssm set kubelet AppStderr "$LogDirectory\kubelet.err.log"
nssm set kubelet AppStdoutCreationDisposition 4
nssm set kubelet AppStderrCreationDisposition 4
nssm set kubelet AppRotateFiles 1
nssm set kubelet AppRotateOnline 1
# Rotate Logs Every 24 hours or 1 gb
nssm set kubelet AppRotateSeconds 86400
nssm set kubelet AppRotateBytes 1073741824
nssm set kubelet AppEnvironmentExtra CONTAINER_NETWORK=$ContainerNetwork
# Setup kube-proxy service
nssm install kube-proxy "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
nssm set kube-proxy Application "$KubeProxyExePath"
nssm set kube-proxy AppDirectory "$kubeproxyDirectory"
nssm set kube-proxy AppParameters $kubeproxyArgs
nssm set kube-proxy DisplayName kube-proxy
nssm set kube-proxy Description kube-proxy
nssm set kube-proxy Start SERVICE_AUTO_START
nssm set kube-proxy ObjectName LocalSystem
nssm set kube-proxy Type SERVICE_WIN32_OWN_PROCESS
# Delay restart if application runs for less than 1500 ms
nssm set kube-proxy AppThrottle 1500
nssm set kube-proxy AppStdout "$LogDirectory\kube-proxy.log"
nssm set kube-proxy AppStderr "$LogDirectory\kube-proxy.err.log"
nssm set kube-proxy AppStdoutCreationDisposition 4
nssm set kube-proxy AppStderrCreationDisposition 4
nssm set kube-proxy AppRotateFiles 1
nssm set kube-proxy AppRotateOnline 1
# Rotate Logs Every 24 hours or 1 gb
nssm set kube-proxy AppRotateSeconds 86400
nssm set kube-proxy AppRotateBytes 1073741824
nssm set kube-proxy AppEnvironmentExtra INTERFACE_TO_ADD_SERVICE_IP=$InterfaceForServiceIP
# Start kubelet and kube-proxy Services
echo "Starting kubelet"
Start-Service kubelet
echo "Starting kube-proxy"
Start-Service kube-proxy

Some files were not shown because too many files have changed in this diff Show more