mirror of https://github.com/k3s-io/k3s
Remove all traces of federation
parent
7c6f17296c
commit
adc338d330
|
@ -7,4 +7,3 @@ test/test_owners.csv merge=union
|
|||
**/generated.proto -diff
|
||||
**/types_swagger_doc_generated.go -diff
|
||||
docs/api-reference/** -diff
|
||||
federation/docs/api-reference/** -diff
|
||||
|
|
|
@ -74546,11 +74546,6 @@
|
|||
"kind": "DeleteOptions",
|
||||
"version": "v1beta1"
|
||||
},
|
||||
{
|
||||
"group": "federation",
|
||||
"kind": "DeleteOptions",
|
||||
"version": "v1beta1"
|
||||
},
|
||||
{
|
||||
"group": "imagepolicy.k8s.io",
|
||||
"kind": "DeleteOptions",
|
||||
|
@ -75065,11 +75060,6 @@
|
|||
"kind": "WatchEvent",
|
||||
"version": "v1beta1"
|
||||
},
|
||||
{
|
||||
"group": "federation",
|
||||
"kind": "WatchEvent",
|
||||
"version": "v1beta1"
|
||||
},
|
||||
{
|
||||
"group": "imagepolicy.k8s.io",
|
||||
"kind": "WatchEvent",
|
||||
|
|
|
@ -103,7 +103,6 @@ release_filegroup(
|
|||
name = "client-targets",
|
||||
srcs = [
|
||||
"//cmd/kubectl",
|
||||
"//federation/cmd/kubefed",
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -143,7 +142,6 @@ filegroup(
|
|||
"//cmd/genyaml",
|
||||
"//cmd/kubemark", # TODO: server platforms only
|
||||
"//cmd/linkcheck",
|
||||
"//federation/cmd/genfeddocs",
|
||||
"//test/e2e:e2e.test",
|
||||
"//test/e2e_node:e2e_node.test", # TODO: server platforms only
|
||||
"//vendor/github.com/onsi/ginkgo/ginkgo",
|
||||
|
@ -154,9 +152,7 @@ filegroup(
|
|||
filegroup(
|
||||
name = "test-portable-targets",
|
||||
srcs = [
|
||||
"//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",
|
||||
|
|
|
@ -503,11 +503,6 @@ EOF
|
|||
mkdir -p "${release_stage}/third_party"
|
||||
cp -R "${KUBE_ROOT}/third_party/htpasswd" "${release_stage}/third_party/htpasswd"
|
||||
|
||||
# Include only federation/cluster and federation/deploy
|
||||
mkdir "${release_stage}/federation"
|
||||
cp -R "${KUBE_ROOT}/federation/cluster" "${release_stage}/federation/"
|
||||
cp -R "${KUBE_ROOT}/federation/deploy" "${release_stage}/federation/"
|
||||
|
||||
# Include hack/lib as a dependency for the cluster/ scripts
|
||||
mkdir -p "${release_stage}/hack"
|
||||
cp -R "${KUBE_ROOT}/hack/lib" "${release_stage}/hack/"
|
||||
|
|
|
@ -193,7 +193,6 @@ pkg_tar(
|
|||
strip_prefix = "//",
|
||||
deps = [
|
||||
":_full_server",
|
||||
"//federation:release",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -63,7 +63,6 @@ filegroup(
|
|||
"//cmd:all-srcs",
|
||||
"//docs:all-srcs",
|
||||
"//examples:all-srcs",
|
||||
"//federation:all-srcs",
|
||||
"//hack:all-srcs",
|
||||
"//pkg:all-srcs",
|
||||
"//plugin:all-srcs",
|
||||
|
|
|
@ -291,7 +291,6 @@ else
|
|||
test-cmd: generated_files
|
||||
hack/make-rules/test-kubeadm-cmd.sh
|
||||
hack/make-rules/test-cmd.sh
|
||||
hack/make-rules/test-federation-cmd.sh
|
||||
endif
|
||||
|
||||
define CLEAN_HELP_INFO
|
||||
|
@ -482,21 +481,6 @@ $(notdir $(abspath $(wildcard plugin/cmd/*/))): generated_files
|
|||
hack/make-rules/build.sh plugin/cmd/$@
|
||||
endif
|
||||
|
||||
define FED_CMD_HELP_INFO
|
||||
# Add rules for all directories in federation/cmd/
|
||||
#
|
||||
# Example:
|
||||
# make federation-apiserver federation-controller-manager
|
||||
endef
|
||||
.PHONY: $(notdir $(abspath $(wildcard federation/cmd/*/)))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))):
|
||||
@echo "$$FED_CMD_HELP_INFO"
|
||||
else
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))): generated_files
|
||||
hack/make-rules/build.sh federation/cmd/$@
|
||||
endif
|
||||
|
||||
define GENERATED_FILES_HELP_INFO
|
||||
# Produce auto-generated files needed for the build.
|
||||
#
|
||||
|
|
|
@ -50,18 +50,6 @@ package_group(
|
|||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "FEDERATION_BAD",
|
||||
packages = [
|
||||
"//federation/cmd/genfeddocs",
|
||||
"//federation/cmd/kubefed/app",
|
||||
"//federation/pkg/kubefed",
|
||||
"//federation/pkg/kubefed/init",
|
||||
"//federation/pkg/kubefed/testing",
|
||||
"//federation/pkg/kubefed/util",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "cluster",
|
||||
packages = [
|
||||
|
@ -93,7 +81,6 @@ package_group(
|
|||
package_group(
|
||||
name = "pkg_kubectl_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
|
@ -125,9 +112,6 @@ package_group(
|
|||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
|
@ -178,19 +162,11 @@ package_group(
|
|||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_templates_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed/init",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_templates_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
|
@ -213,19 +189,8 @@ package_group(
|
|||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_testing_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed",
|
||||
"//federation/pkg/kubefed/init",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_testing_CONSUMERS",
|
||||
includes = [
|
||||
":pkg_kubectl_cmd_testing_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
|
@ -236,7 +201,6 @@ package_group(
|
|||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
|
@ -293,9 +257,6 @@ package_group(
|
|||
|
||||
package_group(
|
||||
name = "pkg_kubectl_metricsutil_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
|
@ -316,19 +277,11 @@ package_group(
|
|||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_resource_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_resource_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":pkg_kubectl_resource_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
|
|
|
@ -34,7 +34,7 @@ generally inhibit progress.
|
|||
one can specify the following visibility rule in any `BUILD` rule:
|
||||
```
|
||||
visibility = [ "//build/visible_to:database_CONSUMERS" ],
|
||||
```
|
||||
```
|
||||
|
||||
* A visibility rule takes a list of package groups as its
|
||||
argument - or one of the pre-defined groups
|
||||
|
@ -59,7 +59,7 @@ generally inhibit progress.
|
|||
* One set of `OWNERS` to manage visibility.
|
||||
|
||||
The alternative is to use special [package literals] directly
|
||||
in visibility rules, e.g.
|
||||
in visibility rules, e.g.
|
||||
|
||||
```
|
||||
visibility = [
|
||||
|
@ -114,7 +114,7 @@ visibility = ["//visible_to:client_foo,//visible_to:server_foo"],
|
|||
#### Quickly check for visibility violations
|
||||
```
|
||||
bazel build --check_visibility --nobuild \
|
||||
//cmd/... //pkg/... //federation/... //plugin/... \
|
||||
//cmd/... //pkg/... //plugin/... \
|
||||
//third_party/... //examples/... //test/... //vendor/k8s.io/...
|
||||
```
|
||||
|
||||
|
@ -179,6 +179,6 @@ bazel query --nohost_deps --noimplicit_deps \
|
|||
bazel query "somepath(cmd/kubectl:kubectl, pkg/util/parsers:go_default_library)"
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
[package literals]: https://bazel.build/versions/master/docs/be/common-definitions.html#common.visibility
|
||||
|
|
|
@ -160,20 +160,6 @@ function clear-kubeconfig() {
|
|||
echo "Cleared config for ${CONTEXT} from ${KUBECONFIG}"
|
||||
}
|
||||
|
||||
# Creates a kubeconfig file with the credentials for only the current-context
|
||||
# cluster. This is used by federation to create secrets in test setup.
|
||||
function create-kubeconfig-for-federation() {
|
||||
if [[ "${FEDERATION:-}" == "true" ]]; then
|
||||
echo "creating kubeconfig for federation secret"
|
||||
local kubectl="${KUBE_ROOT}/cluster/kubectl.sh"
|
||||
local cc=$("${kubectl}" config view -o jsonpath='{.current-context}')
|
||||
KUBECONFIG_DIR=$(dirname ${KUBECONFIG:-$DEFAULT_KUBECONFIG})
|
||||
KUBECONFIG_PATH="${KUBECONFIG_DIR}/federation/kubernetes-apiserver/${cc}"
|
||||
mkdir -p "${KUBECONFIG_PATH}"
|
||||
"${kubectl}" config view --minify --flatten > "${KUBECONFIG_PATH}/kubeconfig"
|
||||
fi
|
||||
}
|
||||
|
||||
function tear_down_alive_resources() {
|
||||
local kubectl="${KUBE_ROOT}/cluster/kubectl.sh"
|
||||
"${kubectl}" delete deployments --all || true
|
||||
|
@ -946,17 +932,6 @@ AUTOSCALER_EXPANDER_CONFIG: $(yaml-quote ${AUTOSCALER_EXPANDER_CONFIG})
|
|||
EOF
|
||||
fi
|
||||
|
||||
# Federation specific environment variables.
|
||||
if [[ -n "${FEDERATION:-}" ]]; then
|
||||
cat >>$file <<EOF
|
||||
FEDERATION: $(yaml-quote ${FEDERATION})
|
||||
EOF
|
||||
fi
|
||||
if [ -n "${FEDERATION_NAME:-}" ]; then
|
||||
cat >>$file <<EOF
|
||||
FEDERATION_NAME: $(yaml-quote ${FEDERATION_NAME})
|
||||
EOF
|
||||
fi
|
||||
if [ -n "${DNS_ZONE_NAME:-}" ]; then
|
||||
cat >>$file <<EOF
|
||||
DNS_ZONE_NAME: $(yaml-quote ${DNS_ZONE_NAME})
|
||||
|
|
|
@ -95,11 +95,7 @@ function get-cluster-ip-range {
|
|||
if [[ "${NUM_NODES}" -gt 4000 ]]; then
|
||||
suggested_range="10.64.0.0/11"
|
||||
fi
|
||||
echo "${suggested_range}"
|
||||
echo "${suggested_range}"
|
||||
}
|
||||
|
||||
if [[ "${FEDERATION:-}" == true ]]; then
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro,https://www.googleapis.com/auth/ndev.clouddns.readwrite}"
|
||||
else
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}"
|
||||
fi
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}"
|
||||
|
|
|
@ -103,11 +103,7 @@ MASTER_IP_RANGE="${MASTER_IP_RANGE:-10.246.0.0/24}"
|
|||
# It is the primary range in the subnet and is the range used for node instance IPs.
|
||||
NODE_IP_RANGE="$(get-node-ip-range)"
|
||||
|
||||
if [[ "${FEDERATION:-}" == true ]]; then
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro,https://www.googleapis.com/auth/ndev.clouddns.readwrite}"
|
||||
else
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}"
|
||||
fi
|
||||
NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}"
|
||||
|
||||
# Extra docker options for nodes.
|
||||
EXTRA_DOCKER_OPTS="${EXTRA_DOCKER_OPTS:-}"
|
||||
|
|
|
@ -1506,8 +1506,6 @@ function check-cluster() {
|
|||
|
||||
# Update the user's kubeconfig to include credentials for this apiserver.
|
||||
create-kubeconfig
|
||||
|
||||
create-kubeconfig-for-federation
|
||||
)
|
||||
|
||||
# ensures KUBECONFIG is set
|
||||
|
|
|
@ -11,16 +11,12 @@ docker_build(
|
|||
for path in [
|
||||
"/apiserver",
|
||||
"/controller-manager",
|
||||
"/federation-apiserver",
|
||||
"/federation-controller-manager",
|
||||
"/kubectl",
|
||||
"/kubelet",
|
||||
"/proxy",
|
||||
"/scheduler",
|
||||
"/usr/local/bin/kube-apiserver",
|
||||
"/usr/local/bin/kube-controller-manager",
|
||||
"/usr/local/bin/federation-apiserver",
|
||||
"/usr/local/bin/federation-controller-manager",
|
||||
"/usr/local/bin/kubectl",
|
||||
"/usr/local/bin/kubelet",
|
||||
"/usr/local/bin/kube-proxy",
|
||||
|
|
|
@ -22,8 +22,6 @@ FROM BASEIMAGE
|
|||
# RUN /hyperkube --make-symlinks
|
||||
RUN ln -s /hyperkube /apiserver \
|
||||
&& ln -s /hyperkube /controller-manager \
|
||||
&& ln -s /hyperkube /federation-apiserver \
|
||||
&& ln -s /hyperkube /federation-controller-manager \
|
||||
&& ln -s /hyperkube /kubectl \
|
||||
&& ln -s /hyperkube /kubelet \
|
||||
&& ln -s /hyperkube /proxy \
|
||||
|
@ -31,8 +29,6 @@ RUN ln -s /hyperkube /apiserver \
|
|||
&& ln -s /hyperkube /aggerator \
|
||||
&& ln -s /hyperkube /usr/local/bin/kube-apiserver \
|
||||
&& ln -s /hyperkube /usr/local/bin/kube-controller-manager \
|
||||
&& ln -s /hyperkube /usr/local/bin/federation-apiserver \
|
||||
&& ln -s /hyperkube /usr/local/bin/federation-controller-manager \
|
||||
&& ln -s /hyperkube /usr/local/bin/kubectl \
|
||||
&& ln -s /hyperkube /usr/local/bin/kubelet \
|
||||
&& ln -s /hyperkube /usr/local/bin/kube-proxy \
|
||||
|
|
|
@ -38,59 +38,3 @@ PROVIDER_UTILS="${KUBE_ROOT}/cluster/${KUBERNETES_PROVIDER}/util.sh"
|
|||
if [ -f ${PROVIDER_UTILS} ]; then
|
||||
source "${PROVIDER_UTILS}"
|
||||
fi
|
||||
|
||||
# Federation utils
|
||||
|
||||
# Sets the kubeconfig context value for the current cluster.
|
||||
# Args:
|
||||
# $1: zone (required)
|
||||
#
|
||||
# Vars set:
|
||||
# CLUSTER_CONTEXT
|
||||
function kubeconfig-federation-context() {
|
||||
if [[ -z "${1:-}" ]]; then
|
||||
echo "zone parameter is required"
|
||||
exit 1
|
||||
fi
|
||||
CLUSTER_CONTEXT="federation-e2e-${KUBERNETES_PROVIDER}-${1}"
|
||||
}
|
||||
|
||||
# Should NOT be called within the global scope, unless setting the desired global zone vars
|
||||
# This function is currently NOT USED in the global scope
|
||||
function set-federation-zone-vars {
|
||||
zone="$1"
|
||||
kubeconfig-federation-context "${zone}"
|
||||
export OVERRIDE_CONTEXT="${CLUSTER_CONTEXT}"
|
||||
echo "Setting zone vars to: $OVERRIDE_CONTEXT"
|
||||
if [[ "$KUBERNETES_PROVIDER" == "gce" ]];then
|
||||
# This needs a revamp, but for now e2e zone name is used as the unique
|
||||
# cluster identifier in our e2e tests and we will continue to use that
|
||||
# pattern.
|
||||
export CLUSTER_NAME="${zone}"
|
||||
|
||||
export KUBE_GCE_ZONE="${zone}"
|
||||
# gcloud has a 61 character limit, and for firewall rules this
|
||||
# prefix gets appended to itself, with some extra information
|
||||
# need tot keep it short
|
||||
export KUBE_GCE_INSTANCE_PREFIX="${USER}-${zone}"
|
||||
|
||||
elif [[ "$KUBERNETES_PROVIDER" == "gke" ]];then
|
||||
|
||||
export CLUSTER_NAME="${USER}-${zone}"
|
||||
|
||||
elif [[ "$KUBERNETES_PROVIDER" == "aws" ]];then
|
||||
|
||||
export KUBE_AWS_ZONE="$zone"
|
||||
export KUBE_AWS_INSTANCE_PREFIX="${USER}-${zone}"
|
||||
|
||||
# WARNING: This is hack
|
||||
# After KUBE_AWS_INSTANCE_PREFIX is changed,
|
||||
# we need to make sure the config-xxx.sh file is
|
||||
# re-sourced so the change propogates to dependent computed values
|
||||
# (eg: MASTER_SG_NAME, NODE_SG_NAME, etc)
|
||||
source "${KUBE_ROOT}/cluster/aws/util.sh"
|
||||
else
|
||||
echo "Provider \"${KUBERNETES_PROVIDER}\" is not supported"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -296,8 +296,6 @@ function kube-up {
|
|||
|
||||
# Update the user's kubeconfig to include credentials for this apiserver.
|
||||
create-kubeconfig
|
||||
|
||||
create-kubeconfig-for-federation
|
||||
)
|
||||
|
||||
verify-cluster
|
||||
|
|
|
@ -30,8 +30,6 @@ go_test(
|
|||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"federation-apiserver.go",
|
||||
"federation-controller-manager.go",
|
||||
"hyperkube.go",
|
||||
"kube-aggregator.go",
|
||||
"kube-apiserver.go",
|
||||
|
@ -52,10 +50,6 @@ go_library(
|
|||
"//cmd/kube-proxy/app:go_default_library",
|
||||
"//cmd/kubelet/app:go_default_library",
|
||||
"//cmd/kubelet/app/options:go_default_library",
|
||||
"//federation/cmd/federation-apiserver/app:go_default_library",
|
||||
"//federation/cmd/federation-apiserver/app/options:go_default_library",
|
||||
"//federation/cmd/federation-controller-manager/app:go_default_library",
|
||||
"//federation/cmd/federation-controller-manager/app/options:go_default_library",
|
||||
"//pkg/client/metrics/prometheus:go_default_library",
|
||||
"//pkg/kubectl/cmd:go_default_library",
|
||||
"//pkg/kubectl/cmd/util:go_default_library",
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/federation/cmd/federation-apiserver/app"
|
||||
"k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options"
|
||||
)
|
||||
|
||||
// NewFederationAPIServer creates a new hyperkube Server object that includes the
|
||||
// description and flags.
|
||||
func NewFederationAPIServer() *Server {
|
||||
s := options.NewServerRunOptions()
|
||||
|
||||
hks := Server{
|
||||
SimpleUsage: "federation-apiserver",
|
||||
Long: "The API entrypoint for the federation control plane",
|
||||
Run: func(_ *Server, args []string, stopCh <-chan struct{}) error {
|
||||
return app.Run(s, stopCh)
|
||||
},
|
||||
RespectsStopCh: true,
|
||||
}
|
||||
s.AddFlags(hks.Flags())
|
||||
return &hks
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/federation/cmd/federation-controller-manager/app"
|
||||
"k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options"
|
||||
)
|
||||
|
||||
// NewFederationCMServer creates a new hyperkube Server object that includes the
|
||||
// description and flags.
|
||||
func NewFederationCMServer() *Server {
|
||||
s := options.NewCMServer()
|
||||
|
||||
hks := Server{
|
||||
SimpleUsage: "federation-controller-manager",
|
||||
Long: "Controller manager for federation control plane. Manages federation service endpoints and controllers",
|
||||
Run: func(_ *Server, args []string, stopCh <-chan struct{}) error {
|
||||
return app.Run(s)
|
||||
},
|
||||
}
|
||||
s.AddFlags(hks.Flags())
|
||||
return &hks
|
||||
}
|
|
@ -46,9 +46,5 @@ func main() {
|
|||
hk.AddServer(NewKubeProxy())
|
||||
hk.AddServer(NewKubeAggregator())
|
||||
|
||||
//Federation servers
|
||||
hk.AddServer(NewFederationAPIServer())
|
||||
hk.AddServer(NewFederationCMServer())
|
||||
|
||||
hk.RunToExit(os.Args)
|
||||
}
|
||||
|
|
|
@ -1,17 +1,9 @@
|
|||
docs/.generated_docs
|
||||
docs/admin/cloud-controller-manager.md
|
||||
docs/admin/federation-apiserver.md
|
||||
docs/admin/federation-controller-manager.md
|
||||
docs/admin/kube-apiserver.md
|
||||
docs/admin/kube-controller-manager.md
|
||||
docs/admin/kube-proxy.md
|
||||
docs/admin/kube-scheduler.md
|
||||
docs/admin/kubefed.md
|
||||
docs/admin/kubefed_init.md
|
||||
docs/admin/kubefed_join.md
|
||||
docs/admin/kubefed_options.md
|
||||
docs/admin/kubefed_unjoin.md
|
||||
docs/admin/kubefed_version.md
|
||||
docs/admin/kubelet.md
|
||||
docs/man/man1/cloud-controller-manager.1
|
||||
docs/man/man1/kube-apiserver.1
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
This file is autogenerated, but we've stopped checking such files into the
|
||||
repository to reduce the need for rebases. Please run hack/generate-docs.sh to
|
||||
populate this file.
|
|
@ -11,55 +11,6 @@ cmd/kubelet/app
|
|||
cmd/kubelet/app/options
|
||||
cmd/kubemark
|
||||
examples/guestbook-go
|
||||
federation/apis/core
|
||||
federation/apis/core/v1
|
||||
federation/apis/federation
|
||||
federation/apis/federation/v1beta1
|
||||
federation/apis/federation/validation
|
||||
federation/client/cache
|
||||
federation/cmd/federation-apiserver/app
|
||||
federation/cmd/federation-apiserver/app/options
|
||||
federation/cmd/federation-controller-manager/app
|
||||
federation/cmd/federation-controller-manager/app/options
|
||||
federation/cmd/kubefed/app
|
||||
federation/pkg/dnsprovider
|
||||
federation/pkg/dnsprovider/providers/aws/route53
|
||||
federation/pkg/dnsprovider/providers/aws/route53/stubs
|
||||
federation/pkg/dnsprovider/providers/coredns
|
||||
federation/pkg/dnsprovider/providers/coredns/stubs
|
||||
federation/pkg/dnsprovider/providers/google/clouddns
|
||||
federation/pkg/dnsprovider/providers/google/clouddns/internal
|
||||
federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces
|
||||
federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs
|
||||
federation/pkg/dnsprovider/rrstype
|
||||
federation/pkg/dnsprovider/tests
|
||||
federation/pkg/federatedtypes
|
||||
federation/pkg/federatedtypes/crudtester
|
||||
federation/pkg/federation-controller
|
||||
federation/pkg/federation-controller/cluster
|
||||
federation/pkg/federation-controller/ingress
|
||||
federation/pkg/federation-controller/service
|
||||
federation/pkg/federation-controller/service/dns
|
||||
federation/pkg/federation-controller/service/ingress
|
||||
federation/pkg/federation-controller/sync
|
||||
federation/pkg/federation-controller/util
|
||||
federation/pkg/federation-controller/util/clusterselector
|
||||
federation/pkg/federation-controller/util/deletionhelper
|
||||
federation/pkg/federation-controller/util/eventsink
|
||||
federation/pkg/federation-controller/util/finalizers
|
||||
federation/pkg/federation-controller/util/planner
|
||||
federation/pkg/federation-controller/util/podanalyzer
|
||||
federation/pkg/federation-controller/util/test
|
||||
federation/pkg/kubefed
|
||||
federation/pkg/kubefed/init
|
||||
federation/pkg/kubefed/testing
|
||||
federation/pkg/kubefed/util
|
||||
federation/registry/cluster
|
||||
federation/registry/cluster/etcd
|
||||
federation/test/e2e
|
||||
federation/test/e2e/framework
|
||||
federation/test/e2e/upgrades
|
||||
federation/test/integration/framework
|
||||
pkg/api
|
||||
pkg/api/endpoints
|
||||
pkg/api/helper
|
||||
|
|
|
@ -29,16 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh"
|
|||
|
||||
prepare-e2e
|
||||
|
||||
if [[ "${FEDERATION:-}" == "true" ]]; then
|
||||
source "${KUBE_ROOT}/federation/cluster/common.sh"
|
||||
|
||||
for zone in ${E2E_ZONES};do
|
||||
# bring down an e2e cluster
|
||||
(
|
||||
set-federation-zone-vars "$zone"
|
||||
test-teardown
|
||||
)
|
||||
done
|
||||
else
|
||||
test-teardown
|
||||
fi
|
||||
test-teardown
|
||||
|
|
|
@ -29,19 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh"
|
|||
|
||||
prepare-e2e
|
||||
|
||||
if [[ "${FEDERATION:-}" == "true" ]];then
|
||||
FEDERATION_NAMESPACE=${FEDERATION_NAMESPACE:-federation-system}
|
||||
#TODO(colhom): the last cluster that was created in the loop above is the current context.
|
||||
# Hence, it will be the cluster that hosts the federated components.
|
||||
# In the future, we will want to loop through the all the federated contexts,
|
||||
# select each one and call federated-up
|
||||
for zone in ${E2E_ZONES};do
|
||||
(
|
||||
set-federation-zone-vars "$zone"
|
||||
printf "\n\tChecking version for $OVERRIDE_CONTEXT\n"
|
||||
${KUBECTL} --context="$OVERRIDE_CONTEXT" version
|
||||
)
|
||||
done
|
||||
else
|
||||
${KUBECTL} version
|
||||
fi
|
||||
${KUBECTL} version
|
||||
|
|
|
@ -29,16 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh"
|
|||
|
||||
prepare-e2e
|
||||
|
||||
if [[ "${FEDERATION:-}" == "true" ]]; then
|
||||
cur_ip_octet2=180
|
||||
for zone in ${E2E_ZONES};do
|
||||
(
|
||||
export CLUSTER_IP_RANGE="10.${cur_ip_octet2}.0.0/16"
|
||||
set-federation-zone-vars "$zone"
|
||||
test-setup
|
||||
)
|
||||
cur_ip_octet2="$((cur_ip_octet2 + 1))"
|
||||
done
|
||||
else
|
||||
test-setup
|
||||
fi
|
||||
test-setup
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
source "${KUBE_ROOT}/cluster/kube-util.sh"
|
||||
source "${KUBE_ROOT}/federation/cluster/common.sh"
|
||||
|
||||
: "${FEDERATION_HOST_CLUSTER_ZONE?Must set FEDERATION_HOST_CLUSTER_ZONE env var}"
|
||||
|
||||
(
|
||||
set-federation-zone-vars "${FEDERATION_HOST_CLUSTER_ZONE}"
|
||||
# Export FEDERATION_KUBE_CONTEXT to ensure that it is available to
|
||||
# ginkgo-e2e.sh and is thus passed on to the federation tests.
|
||||
export FEDERATION_KUBE_CONTEXT
|
||||
"${KUBE_ROOT}/hack/ginkgo-e2e.sh" $@
|
||||
)
|
|
@ -32,7 +32,6 @@ BINS=(
|
|||
cmd/genkubedocs
|
||||
cmd/genman
|
||||
cmd/genyaml
|
||||
federation/cmd/genfeddocs
|
||||
)
|
||||
make -C "${KUBE_ROOT}" WHAT="${BINS[*]}"
|
||||
|
||||
|
|
|
@ -148,7 +148,6 @@ export PATH=$(dirname "${e2e_test}"):"${PATH}"
|
|||
--network="${KUBE_GCE_NETWORK:-${KUBE_GKE_NETWORK:-e2e}}" \
|
||||
--node-tag="${NODE_TAG:-}" \
|
||||
--master-tag="${MASTER_TAG:-}" \
|
||||
--federated-kube-context="${FEDERATION_KUBE_CONTEXT:-e2e-federation}" \
|
||||
${KUBE_CONTAINER_RUNTIME:+"--container-runtime=${KUBE_CONTAINER_RUNTIME}"} \
|
||||
${MASTER_OS_DISTRIBUTION:+"--master-os-distro=${MASTER_OS_DISTRIBUTION}"} \
|
||||
${NODE_OS_DISTRIBUTION:+"--node-os-distro=${NODE_OS_DISTRIBUTION}"} \
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
set -o xtrace
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
||||
|
||||
make -C "${KUBE_ROOT}/federation/" build
|
||||
make -C "${KUBE_ROOT}/federation/" push
|
|
@ -35,8 +35,6 @@ export PATH=$PATH:/usr/local/go/bin
|
|||
# Skip gcloud update checking
|
||||
export CLOUDSDK_COMPONENT_MANAGER_DISABLE_UPDATE_CHECK=true
|
||||
|
||||
# FEDERATION?
|
||||
: ${FEDERATION:="false"}
|
||||
: ${KUBE_RELEASE_RUN_TESTS:="n"}
|
||||
export KUBE_RELEASE_RUN_TESTS
|
||||
|
||||
|
@ -67,10 +65,9 @@ else
|
|||
|
||||
[[ -n "${KUBE_GCS_RELEASE_BUCKET-}" ]] \
|
||||
&& bucket_flag="--bucket=${KUBE_GCS_RELEASE_BUCKET-}"
|
||||
${FEDERATION} && federation_flag="--federation"
|
||||
[[ -n "${KUBE_GCS_RELEASE_SUFFIX-}" ]] \
|
||||
&& gcs_suffix_flag="--gcs-suffix=${KUBE_GCS_RELEASE_SUFFIX-}"
|
||||
${push_build} ${bucket_flag-} ${federation_flag-} ${gcs_suffix_flag-} \
|
||||
${push_build} ${bucket_flag-} ${gcs_suffix_flag-} \
|
||||
--nomock --verbose --ci
|
||||
fi
|
||||
|
||||
|
|
|
@ -125,7 +125,6 @@ fi
|
|||
# If you update this list, please also update build/BUILD.
|
||||
readonly KUBE_CLIENT_TARGETS=(
|
||||
cmd/kubectl
|
||||
federation/cmd/kubefed
|
||||
)
|
||||
readonly KUBE_CLIENT_BINARIES=("${KUBE_CLIENT_TARGETS[@]##*/}")
|
||||
readonly KUBE_CLIENT_BINARIES_WIN=("${KUBE_CLIENT_BINARIES[@]/%/.exe}")
|
||||
|
@ -140,7 +139,6 @@ kube::golang::test_targets() {
|
|||
cmd/genyaml
|
||||
cmd/genswaggertypedocs
|
||||
cmd/linkcheck
|
||||
federation/cmd/genfeddocs
|
||||
vendor/github.com/onsi/ginkgo/ginkgo
|
||||
test/e2e/e2e.test
|
||||
)
|
||||
|
@ -153,12 +151,10 @@ readonly KUBE_TEST_BINARIES_WIN=("${KUBE_TEST_BINARIES[@]/%/.exe}")
|
|||
readonly KUBE_TEST_PORTABLE=(
|
||||
test/e2e/testing-manifests
|
||||
test/kubemark
|
||||
federation/develop
|
||||
hack/e2e.go
|
||||
hack/e2e-internal
|
||||
hack/get-build.sh
|
||||
hack/ginkgo-e2e.sh
|
||||
hack/federated-ginkgo-e2e.sh
|
||||
hack/lib
|
||||
)
|
||||
|
||||
|
|
|
@ -184,13 +184,6 @@ kube::util::gen-docs() {
|
|||
"${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler"
|
||||
"${genkubedocs}" "${dest}/docs/admin/" "kubelet"
|
||||
|
||||
# We don't really need federation-apiserver and federation-controller-manager
|
||||
# binaries to generate the docs. We just pass their names to decide which docs
|
||||
# to generate. The actual binary for running federation is hyperkube.
|
||||
"${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver"
|
||||
"${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager"
|
||||
"${genfeddocs}" "${dest}/docs/admin/" "kubefed"
|
||||
|
||||
mkdir -p "${dest}/docs/man/man1/"
|
||||
"${genman}" "${dest}/docs/man/man1/" "kube-apiserver"
|
||||
"${genman}" "${dest}/docs/man/man1/" "kube-controller-manager"
|
||||
|
@ -275,9 +268,6 @@ kube::util::group-version-to-pkg-path() {
|
|||
__internal)
|
||||
echo "pkg/api"
|
||||
;;
|
||||
federation/v1beta1)
|
||||
echo "federation/apis/federation/v1beta1"
|
||||
;;
|
||||
meta/v1)
|
||||
echo "vendor/k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
;;
|
||||
|
|
|
@ -33,15 +33,6 @@ sh_binary(
|
|||
],
|
||||
)
|
||||
|
||||
sh_binary(
|
||||
name = "test-federation-cmd",
|
||||
srcs = ["test-federation-cmd.sh"],
|
||||
deps = [
|
||||
":test-cmd-util",
|
||||
"//hack/lib",
|
||||
],
|
||||
)
|
||||
|
||||
sh_binary(
|
||||
name = "test-integration",
|
||||
srcs = ["test-cmd.sh"],
|
||||
|
|
|
@ -25,10 +25,8 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
|||
ALL_TARGETS=$(make -C "${KUBE_ROOT}" PRINT_HELP=y -rpn | sed -n -e '/^$/ { n ; /^[^ .#][^ ]*:/ { s/:.*$// ; p ; } ; }' | sort)
|
||||
CMD_TARGETS=$(ls -l "${KUBE_ROOT}/cmd" |awk '/^d/ {print $NF}')
|
||||
PLUGIN_CMD_TARGETS=$(ls -l "${KUBE_ROOT}/plugin/cmd" |awk '/^d/ {print $NF}')
|
||||
FED_CMD_TARGETS=$(ls -l "${KUBE_ROOT}/federation/cmd" |awk '/^d/ {print $NF}')
|
||||
CMD_FLAG=false
|
||||
PLUGIN_CMD_FLAG=false
|
||||
FED_CMD_FLAG=false
|
||||
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
for tar in $ALL_TARGETS; do
|
||||
|
@ -62,21 +60,6 @@ for tar in $ALL_TARGETS; do
|
|||
fi
|
||||
done
|
||||
|
||||
for fedcmdtar in $FED_CMD_TARGETS; do
|
||||
if [ $tar = $fedcmdtar ]; then
|
||||
if [ $FED_CMD_FLAG = true ]; then
|
||||
continue 2;
|
||||
fi
|
||||
|
||||
echo -e "${red}${FED_CMD_TARGETS}${reset}"
|
||||
make -C "${KUBE_ROOT}" $tar PRINT_HELP=y
|
||||
echo "---------------------------------------------------------------------------------"
|
||||
|
||||
FED_CMD_FLAG=true
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
|
||||
echo -e "${red}${tar}${reset}"
|
||||
make -C "${KUBE_ROOT}" $tar PRINT_HELP=y
|
||||
echo "---------------------------------------------------------------------------------"
|
||||
|
|
|
@ -4587,8 +4587,6 @@ runTests() {
|
|||
fi
|
||||
|
||||
if kube::test::if_supports_resource "${pods}" ; then
|
||||
# TODO: Move apply tests to run on rs instead of pods so that they can be
|
||||
# run for federation apiserver as well.
|
||||
record_command run_kubectl_apply_tests
|
||||
record_command run_kubectl_run_tests
|
||||
record_command run_kubectl_create_filter_tests
|
||||
|
@ -4603,8 +4601,6 @@ runTests() {
|
|||
###############
|
||||
|
||||
if kube::test::if_supports_resource "${pods}" ; then
|
||||
# TODO: Move get tests to run on rs instead of pods so that they can be
|
||||
# run for federation apiserver as well.
|
||||
record_command run_kubectl_get_tests
|
||||
fi
|
||||
|
||||
|
@ -4621,8 +4617,6 @@ runTests() {
|
|||
##################
|
||||
|
||||
if kube::test::if_supports_resource "${pods}" ; then
|
||||
# TODO: Move request timeout tests to run on rs instead of pods so that they
|
||||
# can be run for federation apiserver as well.
|
||||
record_command run_kubectl_request_timeout_tests
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
# This command checks that the built commands can function together for
|
||||
# simple scenarios. It does not require Docker.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
source "${KUBE_ROOT}/hack/lib/test.sh"
|
||||
source "${KUBE_ROOT}/hack/make-rules/test-cmd-util.sh"
|
||||
|
||||
function run_federation_apiserver() {
|
||||
kube::log::status "Building federation-apiserver"
|
||||
make -C "${KUBE_ROOT}" WHAT="federation/cmd/federation-apiserver"
|
||||
|
||||
# Start federation-apiserver
|
||||
kube::log::status "Starting federation-apiserver"
|
||||
|
||||
# Admission Controllers to invoke prior to persisting objects in cluster
|
||||
ADMISSION_CONTROL="NamespaceLifecycle"
|
||||
|
||||
"${KUBE_OUTPUT_HOSTBIN}/federation-apiserver" \
|
||||
--insecure-port="${API_PORT}" \
|
||||
--secure-port="${SECURE_API_PORT}" \
|
||||
--admission-control="${ADMISSION_CONTROL}" \
|
||||
--etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \
|
||||
--storage-media-type="${KUBE_TEST_API_STORAGE_TYPE-}" \
|
||||
--cert-dir="${TMPDIR:-/tmp/}" \
|
||||
--token-auth-file=hack/testdata/auth-tokens.csv 1>&2 &
|
||||
APISERVER_PID=$!
|
||||
|
||||
kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/healthz" "apiserver"
|
||||
}
|
||||
|
||||
function run_federation_controller_manager() {
|
||||
kube::log::status "Building federation-controller-manager"
|
||||
make -C "${KUBE_ROOT}" WHAT="federation/cmd/federation-controller-manager"
|
||||
|
||||
# Create a kubeconfig for federation apiserver.
|
||||
local kubeconfig="${KUBE_TEMP}/kubeconfig"
|
||||
touch "${kubeconfig}"
|
||||
kubectl config set-cluster "apiserver" --server="http://127.0.0.1:${API_PORT}" --insecure-skip-tls-verify=true --kubeconfig="${kubeconfig}"
|
||||
kubectl config set-context "context" --cluster="apiserver" --kubeconfig="${kubeconfig}"
|
||||
kubectl config use-context "context" --kubeconfig="${kubeconfig}"
|
||||
|
||||
# Start controller manager
|
||||
kube::log::status "Starting federation-controller-manager"
|
||||
"${KUBE_OUTPUT_HOSTBIN}/federation-controller-manager" \
|
||||
--port="${CTLRMGR_PORT}" \
|
||||
--kubeconfig="${kubeconfig}" \
|
||||
--kube-api-content-type="${KUBE_TEST_API_TYPE-}" \
|
||||
--controllers="service-dns=false" \
|
||||
--master="127.0.0.1:${API_PORT}" 1>&2 &
|
||||
CTLRMGR_PID=$!
|
||||
|
||||
kube::util::wait_for_url "http://127.0.0.1:${CTLRMGR_PORT}/healthz" "controller-manager"
|
||||
}
|
||||
|
||||
kube::log::status "Running kubectl tests for federation-apiserver"
|
||||
|
||||
setup
|
||||
run_federation_apiserver
|
||||
run_federation_controller_manager
|
||||
# TODO: Fix for replicasets and deployments.
|
||||
SUPPORTED_RESOURCES=("configmaps" "daemonsets" "events" "ingress" "namespaces" "services" "secrets")
|
||||
# Set wait for deletion to true for federation apiserver since resources are
|
||||
# deleted asynchronously.
|
||||
# This is a temporary workaround until https://github.com/kubernetes/kubernetes/issues/42594 is fixed.
|
||||
WAIT_FOR_DELETION="true"
|
||||
# WARNING: Do not wrap this call in a subshell to capture output, e.g. output=$(runTests)
|
||||
# Doing so will suppress errexit behavior inside runTests
|
||||
runTests
|
||||
|
||||
kube::log::status "TESTS PASSED"
|
|
@ -49,9 +49,6 @@ kube::test::find_integration_test_dirs() {
|
|||
find vendor/k8s.io/apiextensions-apiserver/test/integration/ -name '*_test.go' -print0 \
|
||||
| xargs -0n1 dirname | sed "s|^|${KUBE_GO_PACKAGE}/|" \
|
||||
| LC_ALL=C sort -u
|
||||
find federation/test/integration/ -name '*_test.go' -print0 \
|
||||
| xargs -0n1 dirname | sed "s|^|${KUBE_GO_PACKAGE}/|" \
|
||||
| LC_ALL=C sort -u
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@ kube::test::find_dirs() {
|
|||
-o -path './third_party/*' \
|
||||
-o -path './staging/*' \
|
||||
-o -path './vendor/*' \
|
||||
-o -path './federation/test/*' \
|
||||
\) -prune \
|
||||
\) -name '*_test.go' -print0 | xargs -0n1 dirname | sed "s|^\./|${KUBE_GO_PACKAGE}/|" | LC_ALL=C sort -u
|
||||
|
||||
|
@ -113,7 +112,7 @@ KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-}
|
|||
# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3"
|
||||
# FIXME: due to current implementation of a test client (see: pkg/api/testapi/testapi.go)
|
||||
# ONLY the last version is tested in each group.
|
||||
ALL_VERSIONS_CSV=$(IFS=',';echo "${KUBE_AVAILABLE_GROUP_VERSIONS[*]// /,}";IFS=$),federation/v1beta1
|
||||
ALL_VERSIONS_CSV=$(IFS=',';echo "${KUBE_AVAILABLE_GROUP_VERSIONS[*]// /,}";IFS=$)
|
||||
KUBE_TEST_API_VERSIONS="${KUBE_TEST_API_VERSIONS:-${ALL_VERSIONS_CSV}}"
|
||||
# once we have multiple group supports
|
||||
# Create a junit-style XML test report in this directory if set.
|
||||
|
|
|
@ -63,10 +63,6 @@ BASH_TARGETS="
|
|||
update-swagger-spec
|
||||
update-openapi-spec
|
||||
update-api-reference-docs
|
||||
update-federation-openapi-spec
|
||||
update-federation-swagger-spec
|
||||
update-federation-generated-swagger-docs
|
||||
update-federation-api-reference-docs
|
||||
update-staging-godeps
|
||||
update-bazel"
|
||||
|
||||
|
|
|
@ -61,14 +61,12 @@ GV_DIRS_CSV=$(IFS=',';echo "${GV_DIRS[*]// /,}";IFS=$)
|
|||
# update- and verify- scripts.
|
||||
${clientgen} "$@"
|
||||
${clientgen} --output-base "${KUBE_ROOT}/vendor" --clientset-path="k8s.io/client-go" --clientset-name="kubernetes" --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="${GV_DIRS_CSV}" "$@"
|
||||
# Clientgen for federation clientset.
|
||||
${clientgen} --clientset-name=federation_clientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="../../../federation/apis/federation/v1beta1","core/v1","extensions/v1beta1","batch/v1","autoscaling/v1" --included-types-overrides="core/v1/Service,core/v1/Namespace,extensions/v1beta1/ReplicaSet,core/v1/Secret,extensions/v1beta1/Ingress,extensions/v1beta1/Deployment,extensions/v1beta1/DaemonSet,core/v1/ConfigMap,core/v1/Event,batch/v1/Job,autoscaling/v1/HorizontalPodAutoscaler" "$@"
|
||||
|
||||
listergen_internal_apis=(
|
||||
pkg/api
|
||||
$(
|
||||
cd ${KUBE_ROOT}
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
)
|
||||
)
|
||||
listergen_internal_apis=(${listergen_internal_apis[@]/#/k8s.io/kubernetes/})
|
||||
|
@ -89,7 +87,7 @@ informergen_internal_apis=(
|
|||
pkg/api
|
||||
$(
|
||||
cd ${KUBE_ROOT}
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
)
|
||||
)
|
||||
informergen_internal_apis=(${informergen_internal_apis[@]/#/k8s.io/kubernetes/})
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
# Generates updated api-reference docs from the latest swagger spec for
|
||||
# federation apiserver. The docs are generated at federation/docs/api-reference
|
||||
# Usage: ./update-federation-api-reference-docs.sh <absolute output path>
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
echo "Note: This assumes that swagger spec has been updated. Please run hack/update-federation-swagger-spec.sh to ensure that."
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
source "${KUBE_ROOT}/hack/lib/swagger.sh"
|
||||
kube::golang::setup_env
|
||||
|
||||
REPO_DIR=${REPO_DIR:-"${KUBE_ROOT}"}
|
||||
DEFAULT_OUTPUT="${REPO_DIR}/federation/docs/api-reference"
|
||||
OUTPUT=${1:-${DEFAULT_OUTPUT}}
|
||||
|
||||
SWAGGER_SPEC_PATH="${REPO_DIR}/federation/apis/swagger-spec"
|
||||
|
||||
GROUP_VERSIONS=("federation/v1beta1" "v1" "extensions/v1beta1")
|
||||
GV_DIRS=()
|
||||
for gv in "${GROUP_VERSIONS[@]}"; do
|
||||
if [[ ${gv} == "federation/v1beta1" ]]; then
|
||||
GV_DIRS+=("${REPO_DIR}/$(kube::util::group-version-to-pkg-path "${gv}")")
|
||||
else
|
||||
GV_DIRS+=("${REPO_DIR}/$(kube::util::group-version-to-pkg-path "${gv}")")
|
||||
fi
|
||||
done
|
||||
|
||||
GROUP_VERSIONS="${GROUP_VERSIONS[@]}" GV_DIRS="${GV_DIRS[@]}" kube::swagger::gen_api_ref_docs "${SWAGGER_SPEC_PATH}" "${OUTPUT}"
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -1,43 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
# Generates `types_swagger_doc_generated.go` files for federation API group
|
||||
# versions. That file contains functions on API structs that return the comments
|
||||
# that should be surfaced for the corresponding API type in our API docs.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
source "${KUBE_ROOT}/hack/lib/swagger.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
GROUP_VERSIONS=(federation/v1beta1)
|
||||
GV_DIRS=()
|
||||
for gv in "${GROUP_VERSIONS[@]}"; do
|
||||
GV_DIRS+=("$(kube::util::group-version-to-pkg-path "${gv}")")
|
||||
done
|
||||
|
||||
# To avoid compile errors, remove the currently existing files.
|
||||
for gv_dir in "${GV_DIRS[@]}"; do
|
||||
rm -f "${gv_dir}/types_swagger_doc_generated.go"
|
||||
done
|
||||
for i in "${!GROUP_VERSIONS[@]}"; do
|
||||
kube::swagger::gen_types_swagger_doc "${GROUP_VERSIONS[i]}" "${GV_DIRS[i]}"
|
||||
done
|
|
@ -1,74 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2015 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.
|
||||
|
||||
# Script to fetch latest openapi spec from federation-apiserver
|
||||
# Puts the updated spec at federation/apis/openapi-spec/
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
OPENAPI_ROOT_DIR="${KUBE_ROOT}/federation/apis/openapi-spec"
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
make -C "${KUBE_ROOT}" WHAT="cmd/hyperkube"
|
||||
|
||||
function cleanup()
|
||||
{
|
||||
[[ -n "${APISERVER_PID-}" ]] && kill ${APISERVER_PID} 1>&2 2>/dev/null
|
||||
|
||||
kube::etcd::cleanup
|
||||
|
||||
kube::log::status "Clean up complete"
|
||||
}
|
||||
|
||||
trap cleanup EXIT SIGINT
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
TMP_DIR=$(mktemp -d /tmp/update-federation-openapi-spec.XXXX)
|
||||
ETCD_HOST=${ETCD_HOST:-127.0.0.1}
|
||||
ETCD_PORT=${ETCD_PORT:-2379}
|
||||
API_PORT=${API_PORT:-8050}
|
||||
API_HOST=${API_HOST:-127.0.0.1}
|
||||
|
||||
kube::etcd::start
|
||||
|
||||
echo "dummy_token,admin,admin" > $TMP_DIR/tokenauth.csv
|
||||
|
||||
# Start federation-apiserver
|
||||
kube::log::status "Starting federation-apiserver"
|
||||
"${KUBE_OUTPUT_HOSTBIN}/hyperkube" federation-apiserver \
|
||||
--insecure-bind-address="${API_HOST}" \
|
||||
--bind-address="${API_HOST}" \
|
||||
--insecure-port="${API_PORT}" \
|
||||
--etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \
|
||||
--advertise-address="10.10.10.10" \
|
||||
--cert-dir="${TMP_DIR}/certs" \
|
||||
--token-auth-file=$TMP_DIR/tokenauth.csv >/tmp/openapi-federation-api-server.log 2>&1 &
|
||||
APISERVER_PID=$!
|
||||
kube::util::wait_for_url "${API_HOST}:${API_PORT}/healthz" "apiserver: "
|
||||
|
||||
kube::log::status "Updating " ${OPENAPI_ROOT_DIR}
|
||||
|
||||
curl -w "\n" -fs "${API_HOST}:${API_PORT}/swagger.json" > "${OPENAPI_ROOT_DIR}/swagger.json"
|
||||
|
||||
kube::log::status "SUCCESS"
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -1,83 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2015 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.
|
||||
|
||||
# Script to fetch latest swagger spec from federation-apiserver
|
||||
# Puts the updated spec at federation/apis/swagger-spec/
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
cat << __EOF__
|
||||
Note: This assumes that the 'types_swagger_doc_generated.go' file has been
|
||||
updated for all API group versions. If you are unsure, please run
|
||||
hack/update-generated-swagger-docs.sh and
|
||||
hack/update-federation-generated-swagger-docs.sh first.
|
||||
__EOF__
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
SWAGGER_ROOT_DIR="${KUBE_ROOT}/federation/apis/swagger-spec"
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
make -C "${KUBE_ROOT}" WHAT="cmd/hyperkube"
|
||||
|
||||
function cleanup()
|
||||
{
|
||||
[[ -n ${APISERVER_PID-} ]] && kill ${APISERVER_PID} 1>&2 2>/dev/null
|
||||
|
||||
kube::etcd::cleanup
|
||||
|
||||
kube::log::status "Clean up complete"
|
||||
}
|
||||
|
||||
trap cleanup EXIT SIGINT
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
TMP_DIR=$(mktemp -d /tmp/update-federation-swagger-spec.XXXX)
|
||||
ETCD_HOST=${ETCD_HOST:-127.0.0.1}
|
||||
ETCD_PORT=${ETCD_PORT:-2379}
|
||||
API_PORT=${API_PORT:-8050}
|
||||
API_HOST=${API_HOST:-127.0.0.1}
|
||||
|
||||
kube::etcd::start
|
||||
|
||||
# Start federation-apiserver
|
||||
kube::log::status "Starting federation-apiserver"
|
||||
"${KUBE_OUTPUT_HOSTBIN}/hyperkube" federation-apiserver \
|
||||
--insecure-bind-address="${API_HOST}" \
|
||||
--bind-address="${API_HOST}" \
|
||||
--insecure-port="${API_PORT}" \
|
||||
--etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \
|
||||
--advertise-address="10.10.10.10" \
|
||||
--cert-dir="${TMP_DIR}/certs" >/tmp/swagger-federation-api-server.log 2>&1 &
|
||||
APISERVER_PID=$!
|
||||
|
||||
kube::util::wait_for_url "${API_HOST}:${API_PORT}/" "apiserver: "
|
||||
|
||||
SWAGGER_API_PATH="${API_HOST}:${API_PORT}/swaggerapi/"
|
||||
DEFAULT_GROUP_VERSIONS="v1 extensions/v1beta1 federation/v1beta1"
|
||||
VERSIONS=${VERSIONS:-$DEFAULT_GROUP_VERSIONS}
|
||||
|
||||
kube::log::status "Updating " ${SWAGGER_ROOT_DIR}
|
||||
|
||||
SWAGGER_API_PATH="${SWAGGER_API_PATH}" SWAGGER_ROOT_DIR="${SWAGGER_ROOT_DIR}" VERSIONS="${VERSIONS}" kube::util::fetch-swagger-spec
|
||||
|
||||
kube::log::status "SUCCESS"
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -32,7 +32,6 @@ BINS=(
|
|||
cmd/genkubedocs
|
||||
cmd/genman
|
||||
cmd/genyaml
|
||||
federation/cmd/genfeddocs
|
||||
)
|
||||
make -C "${KUBE_ROOT}" WHAT="${BINS[*]}"
|
||||
|
||||
|
|
|
@ -72,7 +72,6 @@ PACKAGES=(
|
|||
k8s.io/api/admissionregistration/v1alpha1
|
||||
k8s.io/api/admission/v1alpha1
|
||||
k8s.io/api/networking/v1
|
||||
k8s.io/kubernetes/federation/apis/federation/v1beta1
|
||||
k8s.io/metrics/pkg/apis/metrics/v1alpha1
|
||||
k8s.io/metrics/pkg/apis/metrics/v1beta1
|
||||
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
|
||||
|
|
|
@ -14,9 +14,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Generates `types_swagger_doc_generated.go` files for federation API group
|
||||
# versions. That file contains functions on API structs that return the comments
|
||||
# that should be surfaced for the corresponding API type in our API docs.
|
||||
# Generates `types_swagger_doc_generated.go` files for API group
|
||||
# versions. That file contains functions on API structs that return
|
||||
# the comments that should be surfaced for the corresponding API type
|
||||
# in our API docs.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 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.
|
||||
|
||||
# Verifies that api reference docs are up to date.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
API_REFERENCE_DOCS_ROOT="${KUBE_ROOT}/federation/docs/api-reference"
|
||||
OUTPUT_DIR="${KUBE_ROOT}/_tmp_federation/api-reference"
|
||||
mkdir -p ${OUTPUT_DIR}
|
||||
TMP_ROOT="${KUBE_ROOT}/_tmp_federation"
|
||||
trap "rm -rf ${TMP_ROOT}" EXIT SIGINT
|
||||
|
||||
# Generate API reference docs in tmp.
|
||||
"./hack/update-federation-api-reference-docs.sh" "${OUTPUT_DIR}"
|
||||
|
||||
echo "diffing ${API_REFERENCE_DOCS_ROOT} against freshly generated docs"
|
||||
ret=0
|
||||
diff -NauprB -I 'Last update' --exclude=*.md "${API_REFERENCE_DOCS_ROOT}" "${OUTPUT_DIR}" || ret=$?
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${API_REFERENCE_DOCS_ROOT} up to date."
|
||||
else
|
||||
echo "${API_REFERENCE_DOCS_ROOT} is out of date. Please run hack/update-federation-api-reference-docs.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -1,66 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
make -C "${KUBE_ROOT}" WHAT=cmd/genswaggertypedocs
|
||||
|
||||
# Find binary
|
||||
genswaggertypedocs=$(kube::util::find-binary "genswaggertypedocs")
|
||||
|
||||
if [[ ! -x "$genswaggertypedocs" ]]; then
|
||||
{
|
||||
echo "It looks as if you don't have a compiled genswaggertypedocs binary"
|
||||
echo
|
||||
echo "If you are running from a clone of the git repo, please run"
|
||||
echo "'make WHAT=cmd/genswaggertypedocs'."
|
||||
} >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIFFROOT="${KUBE_ROOT}/federation"
|
||||
TMP_DIFFROOT="${KUBE_ROOT}/_tmp/federation"
|
||||
_tmp="${KUBE_ROOT}/_tmp_federation"
|
||||
|
||||
cleanup() {
|
||||
rm -rf "${_tmp}"
|
||||
}
|
||||
trap "cleanup" EXIT SIGINT
|
||||
|
||||
cleanup
|
||||
|
||||
mkdir -p "${TMP_DIFFROOT}"
|
||||
cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}/"
|
||||
|
||||
"${KUBE_ROOT}/hack/update-federation-generated-swagger-docs.sh"
|
||||
echo "diffing ${DIFFROOT} against freshly generated swagger type documentation"
|
||||
ret=0
|
||||
diff -Naupr -I 'Auto generated by' "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$?
|
||||
cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}/"
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${DIFFROOT} up to date."
|
||||
else
|
||||
echo "${DIFFROOT} is out of date. Please run hack/update-federation-generated-swagger-docs.sh"
|
||||
exit 1
|
||||
fi
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
SPECROOT="${KUBE_ROOT}/federation/apis/openapi-spec"
|
||||
TMP_SPECROOT="${KUBE_ROOT}/_tmp_federation/openapi-spec"
|
||||
_tmp="${KUBE_ROOT}/_tmp_federation"
|
||||
|
||||
mkdir -p "${_tmp}"
|
||||
cp -a "${SPECROOT}" "${TMP_SPECROOT}"
|
||||
trap "cp -a ${TMP_SPECROOT} ${SPECROOT}/..; rm -rf ${_tmp}" EXIT SIGINT
|
||||
rm ${SPECROOT}/*
|
||||
|
||||
"${KUBE_ROOT}/hack/update-federation-openapi-spec.sh"
|
||||
echo "diffing ${SPECROOT} against freshly generated federation openapi spec"
|
||||
ret=0
|
||||
diff -Naupr -I 'Auto generated by' "${SPECROOT}" "${TMP_SPECROOT}" || ret=$?
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${SPECROOT} up to date."
|
||||
else
|
||||
echo "${SPECROOT} is out of date. Please run hack/update-federation-openapi-spec.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -1,51 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2017 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
make -C "${KUBE_ROOT}" WHAT=federation/cmd/federation-apiserver
|
||||
|
||||
apiserver=$(kube::util::find-binary "federation-apiserver")
|
||||
|
||||
SPECROOT="${KUBE_ROOT}/federation/apis/swagger-spec"
|
||||
TMP_SPECROOT="${KUBE_ROOT}/_tmp_federation/swagger-spec"
|
||||
_tmp="${KUBE_ROOT}/_tmp_federation"
|
||||
|
||||
mkdir -p "${_tmp}"
|
||||
trap "rm -rf ${_tmp}" EXIT SIGINT
|
||||
cp -a "${SPECROOT}" "${TMP_SPECROOT}"
|
||||
|
||||
"${KUBE_ROOT}/hack/update-federation-swagger-spec.sh"
|
||||
echo "diffing ${SPECROOT} against freshly generated federation swagger spec"
|
||||
ret=0
|
||||
diff -Naupr -I 'Auto generated by' "${SPECROOT}" "${TMP_SPECROOT}" || ret=$?
|
||||
cp -a ${TMP_SPECROOT} "${KUBE_ROOT}/federation/apis"
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${SPECROOT} up to date."
|
||||
else
|
||||
echo "${SPECROOT} is out of date. Please run hack/update-federation-swagger-spec.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
|
@ -28,7 +28,6 @@ BINS=(
|
|||
cmd/genkubedocs
|
||||
cmd/genman
|
||||
cmd/genyaml
|
||||
federation/cmd/genfeddocs
|
||||
)
|
||||
make -C "${KUBE_ROOT}" WHAT="${BINS[*]}"
|
||||
|
||||
|
|
|
@ -11,8 +11,6 @@ go_library(
|
|||
srcs = ["testapi.go"],
|
||||
importpath = "k8s.io/kubernetes/pkg/api/testapi",
|
||||
deps = [
|
||||
"//federation/apis/federation:go_default_library",
|
||||
"//federation/apis/federation/install:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/install:go_default_library",
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
|
|
|
@ -34,7 +34,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer/recognizer"
|
||||
"k8s.io/kubernetes/federation/apis/federation"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/apis/admission"
|
||||
|
@ -53,7 +52,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/apis/settings"
|
||||
"k8s.io/kubernetes/pkg/apis/storage"
|
||||
|
||||
_ "k8s.io/kubernetes/federation/apis/federation/install"
|
||||
_ "k8s.io/kubernetes/pkg/api/install"
|
||||
_ "k8s.io/kubernetes/pkg/apis/admission/install"
|
||||
_ "k8s.io/kubernetes/pkg/apis/admissionregistration/install"
|
||||
|
@ -83,7 +81,6 @@ var (
|
|||
Extensions TestGroup
|
||||
Apps TestGroup
|
||||
Policy TestGroup
|
||||
Federation TestGroup
|
||||
Rbac TestGroup
|
||||
Certificates TestGroup
|
||||
Scheduling TestGroup
|
||||
|
@ -227,15 +224,6 @@ func init() {
|
|||
externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion),
|
||||
}
|
||||
}
|
||||
if _, ok := Groups[federation.GroupName]; !ok {
|
||||
externalGroupVersion := schema.GroupVersion{Group: federation.GroupName, Version: legacyscheme.Registry.GroupOrDie(federation.GroupName).GroupVersion.Version}
|
||||
Groups[federation.GroupName] = TestGroup{
|
||||
externalGroupVersion: externalGroupVersion,
|
||||
internalGroupVersion: federation.SchemeGroupVersion,
|
||||
internalTypes: legacyscheme.Scheme.KnownTypes(federation.SchemeGroupVersion),
|
||||
externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion),
|
||||
}
|
||||
}
|
||||
if _, ok := Groups[rbac.GroupName]; !ok {
|
||||
externalGroupVersion := schema.GroupVersion{Group: rbac.GroupName, Version: legacyscheme.Registry.GroupOrDie(rbac.GroupName).GroupVersion.Version}
|
||||
Groups[rbac.GroupName] = TestGroup{
|
||||
|
@ -334,7 +322,6 @@ func init() {
|
|||
Policy = Groups[policy.GroupName]
|
||||
Certificates = Groups[certificates.GroupName]
|
||||
Extensions = Groups[extensions.GroupName]
|
||||
Federation = Groups[federation.GroupName]
|
||||
Rbac = Groups[rbac.GroupName]
|
||||
Scheduling = Groups[scheduling.GroupName]
|
||||
Settings = Groups[settings.GroupName]
|
||||
|
|
|
@ -11,7 +11,6 @@ openapi_library(
|
|||
srcs = ["doc.go"],
|
||||
go_prefix = openapi_go_prefix,
|
||||
openapi_targets = [
|
||||
"federation/apis/federation/v1beta1",
|
||||
"pkg/apis/abac/v0",
|
||||
"pkg/apis/abac/v1beta1",
|
||||
"pkg/apis/componentconfig/v1alpha1",
|
||||
|
|
|
@ -210,7 +210,6 @@ __custom_func() {
|
|||
* certificatesigningrequests (aka 'csr')
|
||||
* clusterrolebindings
|
||||
* clusterroles
|
||||
* clusters (valid only for federation apiservers)
|
||||
* componentstatuses (aka 'cs')
|
||||
* configmaps (aka 'cm')
|
||||
* controllerrevisions
|
||||
|
|
|
@ -14,7 +14,6 @@ go_library(
|
|||
"//build/visible_to:pkg_kubectl_cmd_testing_CONSUMERS",
|
||||
],
|
||||
deps = [
|
||||
"//federation/client/clientset_generated/federation_clientset:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
|
|
|
@ -35,7 +35,6 @@ import (
|
|||
"k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/rest/fake"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
|
@ -331,12 +330,6 @@ func (f *FakeFactory) ClientForMapping(mapping *meta.RESTMapping) (resource.REST
|
|||
return f.tf.Client, f.tf.Err
|
||||
}
|
||||
|
||||
func (f *FakeFactory) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (f *FakeFactory) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (f *FakeFactory) ClientSetForVersion(requiredVersion *schema.GroupVersion) (internalclientset.Interface, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
@ -22,8 +22,6 @@ go_library(
|
|||
"//build/visible_to:pkg_kubectl_cmd_util_CONSUMERS",
|
||||
],
|
||||
deps = [
|
||||
"//federation/apis/federation:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_clientset:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
|
|
|
@ -24,7 +24,6 @@ import (
|
|||
"k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
oldclient "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/version"
|
||||
|
@ -34,7 +33,6 @@ func NewClientCache(loader clientcmd.ClientConfig, discoveryClientFactory Discov
|
|||
return &ClientCache{
|
||||
clientsets: make(map[schema.GroupVersion]internalclientset.Interface),
|
||||
configs: make(map[schema.GroupVersion]*restclient.Config),
|
||||
fedClientSets: make(map[schema.GroupVersion]fedclientset.Interface),
|
||||
loader: loader,
|
||||
discoveryClientFactory: discoveryClientFactory,
|
||||
}
|
||||
|
@ -43,10 +41,9 @@ func NewClientCache(loader clientcmd.ClientConfig, discoveryClientFactory Discov
|
|||
// ClientCache caches previously loaded clients for reuse, and ensures MatchServerVersion
|
||||
// is invoked only once
|
||||
type ClientCache struct {
|
||||
loader clientcmd.ClientConfig
|
||||
clientsets map[schema.GroupVersion]internalclientset.Interface
|
||||
fedClientSets map[schema.GroupVersion]fedclientset.Interface
|
||||
configs map[schema.GroupVersion]*restclient.Config
|
||||
loader clientcmd.ClientConfig
|
||||
clientsets map[schema.GroupVersion]internalclientset.Interface
|
||||
configs map[schema.GroupVersion]*restclient.Config
|
||||
|
||||
// noVersionConfig provides a cached config for the case of no required version specified
|
||||
noVersionConfig *restclient.Config
|
||||
|
@ -211,51 +208,3 @@ func (c *ClientCache) ClientSetForVersion(requiredVersion *schema.GroupVersion)
|
|||
|
||||
return clientset, nil
|
||||
}
|
||||
|
||||
func (c *ClientCache) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) {
|
||||
c.lock.Lock()
|
||||
defer c.lock.Unlock()
|
||||
|
||||
return c.federationClientSetForVersion(version)
|
||||
}
|
||||
|
||||
func (c *ClientCache) federationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) {
|
||||
if version != nil {
|
||||
if clientSet, found := c.fedClientSets[*version]; found {
|
||||
return clientSet, nil
|
||||
}
|
||||
}
|
||||
config, err := c.clientConfigForVersion(version)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// TODO: support multi versions of client with clientset
|
||||
clientSet, err := fedclientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.fedClientSets[*config.GroupVersion] = clientSet
|
||||
|
||||
if version != nil {
|
||||
configCopy := *config
|
||||
clientSet, err := fedclientset.NewForConfig(&configCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.fedClientSets[*version] = clientSet
|
||||
}
|
||||
|
||||
return clientSet, nil
|
||||
}
|
||||
|
||||
func (c *ClientCache) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) {
|
||||
c.lock.Lock()
|
||||
defer c.lock.Unlock()
|
||||
|
||||
fedClientSet, err := c.federationClientSetForVersion(version)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return fedClientSet.Federation().RESTClient().(*restclient.RESTClient), nil
|
||||
}
|
||||
|
|
|
@ -37,7 +37,6 @@ import (
|
|||
"k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
apiv1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
|
@ -103,11 +102,6 @@ type ClientAccessFactory interface {
|
|||
// just directions to the server. People use this to build RESTMappers on top of
|
||||
BareClientConfig() (*restclient.Config, error)
|
||||
|
||||
// TODO this should probably be removed and collapsed into whatever we want to use long term
|
||||
// probably returning a restclient for a version and leaving contruction up to someone else
|
||||
FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error)
|
||||
// TODO remove this should be rolled into restclient with the right version
|
||||
FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error)
|
||||
// TODO remove. This should be rolled into `ClientSet`
|
||||
ClientSetForVersion(requiredVersion *schema.GroupVersion) (internalclientset.Interface, error)
|
||||
// TODO remove. This should be rolled into `ClientConfig`
|
||||
|
|
|
@ -45,7 +45,6 @@ import (
|
|||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/client-go/util/homedir"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/apis/apps"
|
||||
|
@ -213,14 +212,6 @@ func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) {
|
|||
return restclient.RESTClientFor(clientConfig)
|
||||
}
|
||||
|
||||
func (f *ring0Factory) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) {
|
||||
return f.clientCache.FederationClientSetForVersion(version)
|
||||
}
|
||||
|
||||
func (f *ring0Factory) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) {
|
||||
return f.clientCache.FederationClientForVersion(version)
|
||||
}
|
||||
|
||||
func (f *ring0Factory) Decoder(toInternal bool) runtime.Decoder {
|
||||
var decoder runtime.Decoder
|
||||
if toInternal {
|
||||
|
|
|
@ -35,7 +35,6 @@ import (
|
|||
"k8s.io/client-go/discovery"
|
||||
"k8s.io/client-go/dynamic"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/kubernetes/federation/apis/federation"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/apis/apps"
|
||||
|
@ -143,9 +142,6 @@ func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RES
|
|||
}
|
||||
gvk := mapping.GroupVersionKind
|
||||
switch gvk.Group {
|
||||
case federation.GroupName:
|
||||
mappingVersion := mapping.GroupVersionKind.GroupVersion()
|
||||
return f.clientAccessFactory.FederationClientForVersion(&mappingVersion)
|
||||
case api.GroupName:
|
||||
cfg.APIPath = "/api"
|
||||
default:
|
||||
|
@ -176,15 +172,6 @@ func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) (
|
|||
|
||||
func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (printers.Describer, error) {
|
||||
mappingVersion := mapping.GroupVersionKind.GroupVersion()
|
||||
if mapping.GroupVersionKind.Group == federation.GroupName {
|
||||
fedClientSet, err := f.clientAccessFactory.FederationClientSetForVersion(&mappingVersion)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if mapping.GroupVersionKind.Kind == "Cluster" {
|
||||
return &printersinternal.ClusterDescriber{Interface: fedClientSet}, nil
|
||||
}
|
||||
}
|
||||
|
||||
clientset, err := f.clientAccessFactory.ClientSetForVersion(&mappingVersion)
|
||||
if err != nil {
|
||||
|
|
|
@ -179,10 +179,3 @@ var LegacyCategoryExpander CategoryExpander = SimpleCategoryExpander{
|
|||
"all": legacyUserResources,
|
||||
},
|
||||
}
|
||||
|
||||
// LegacyFederationCategoryExpander is the old hardcoded expansion for federation
|
||||
var LegacyFederationCategoryExpander CategoryExpander = SimpleCategoryExpander{
|
||||
Expansions: map[string][]schema.GroupResource{
|
||||
"all": {{Group: "", Resource: "services"}},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -41,12 +41,11 @@ func TestGroupVersions(t *testing.T) {
|
|||
"batch",
|
||||
"componentconfig",
|
||||
"extensions",
|
||||
"federation",
|
||||
"policy",
|
||||
)
|
||||
|
||||
// No new groups should be added to the legacyUnsuffixedGroups exclusion list
|
||||
if len(legacyUnsuffixedGroups) != 8 {
|
||||
if len(legacyUnsuffixedGroups) != 7 {
|
||||
t.Errorf("No additional unnamespaced groups should be created")
|
||||
}
|
||||
|
||||
|
|
|
@ -16,9 +16,6 @@ go_test(
|
|||
importpath = "k8s.io/kubernetes/pkg/printers/internalversion",
|
||||
library = ":go_default_library",
|
||||
deps = [
|
||||
"//federation/apis/federation:go_default_library",
|
||||
"//federation/apis/federation/v1beta1:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_clientset/fake:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
|
@ -59,9 +56,6 @@ go_library(
|
|||
],
|
||||
importpath = "k8s.io/kubernetes/pkg/printers/internalversion",
|
||||
deps = [
|
||||
"//federation/apis/federation:go_default_library",
|
||||
"//federation/apis/federation/v1beta1:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_clientset:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/events:go_default_library",
|
||||
"//pkg/api/helper:go_default_library",
|
||||
|
|
|
@ -47,8 +47,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/client-go/dynamic"
|
||||
clientextensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1"
|
||||
federation "k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/events"
|
||||
"k8s.io/kubernetes/pkg/api/helper"
|
||||
|
@ -3073,47 +3071,6 @@ func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings
|
|||
})
|
||||
}
|
||||
|
||||
type ClusterDescriber struct {
|
||||
fedclientset.Interface
|
||||
}
|
||||
|
||||
func (d *ClusterDescriber) Describe(namespace, name string, describerSettings printers.DescriberSettings) (string, error) {
|
||||
cluster, err := d.Federation().Clusters().Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return describeCluster(cluster)
|
||||
}
|
||||
|
||||
func describeCluster(cluster *federation.Cluster) (string, error) {
|
||||
return tabbedString(func(out io.Writer) error {
|
||||
w := NewPrefixWriter(out)
|
||||
w.Write(LEVEL_0, "Name:\t%s\n", cluster.Name)
|
||||
w.Write(LEVEL_0, "Labels:\t%s\n", labels.FormatLabels(cluster.Labels))
|
||||
|
||||
w.Write(LEVEL_0, "ServerAddressByClientCIDRs:\n ClientCIDR\tServerAddress\n")
|
||||
w.Write(LEVEL_1, "----\t----\n")
|
||||
for _, cidrAddr := range cluster.Spec.ServerAddressByClientCIDRs {
|
||||
w.Write(LEVEL_1, "%v \t%v\n\n", cidrAddr.ClientCIDR, cidrAddr.ServerAddress)
|
||||
}
|
||||
|
||||
if len(cluster.Status.Conditions) > 0 {
|
||||
w.Write(LEVEL_0, "Conditions:\n Type\tStatus\tLastUpdateTime\tLastTransitionTime\tReason\tMessage\n")
|
||||
w.Write(LEVEL_1, "----\t------\t-----------------\t------------------\t------\t-------\n")
|
||||
for _, c := range cluster.Status.Conditions {
|
||||
w.Write(LEVEL_1, "%v \t%v \t%s \t%s \t%v \t%v\n",
|
||||
c.Type,
|
||||
c.Status,
|
||||
c.LastProbeTime.Time.Format(time.RFC1123Z),
|
||||
c.LastTransitionTime.Time.Format(time.RFC1123Z),
|
||||
c.Reason,
|
||||
c.Message)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
// NetworkPolicyDescriber generates information about a networking.NetworkPolicy
|
||||
type NetworkPolicyDescriber struct {
|
||||
clientset.Interface
|
||||
|
|
|
@ -33,8 +33,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
versionedfake "k8s.io/client-go/kubernetes/fake"
|
||||
federation "k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||
fedfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
|
@ -848,40 +846,6 @@ func TestDescribeDeployment(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestDescribeCluster(t *testing.T) {
|
||||
cluster := federation.Cluster{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
ResourceVersion: "4",
|
||||
Labels: map[string]string{
|
||||
"name": "foo",
|
||||
},
|
||||
},
|
||||
Spec: federation.ClusterSpec{
|
||||
ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{
|
||||
{
|
||||
ClientCIDR: "0.0.0.0/0",
|
||||
ServerAddress: "localhost:8888",
|
||||
},
|
||||
},
|
||||
},
|
||||
Status: federation.ClusterStatus{
|
||||
Conditions: []federation.ClusterCondition{
|
||||
{Type: federation.ClusterReady, Status: v1.ConditionTrue},
|
||||
},
|
||||
},
|
||||
}
|
||||
fake := fedfake.NewSimpleClientset(&cluster)
|
||||
d := ClusterDescriber{Interface: fake}
|
||||
out, err := d.Describe("any", "foo", printers.DescriberSettings{ShowEvents: true})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if !strings.Contains(out, "foo") {
|
||||
t.Errorf("unexpected out: %s", out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDescribeStorageClass(t *testing.T) {
|
||||
reclaimPolicy := api.PersistentVolumeReclaimRetain
|
||||
f := fake.NewSimpleClientset(&storage.StorageClass{
|
||||
|
|
|
@ -41,7 +41,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kubernetes/federation/apis/federation"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/events"
|
||||
"k8s.io/kubernetes/pkg/api/helper"
|
||||
|
@ -361,15 +360,6 @@ func AddHandlers(h printers.PrintHandler) {
|
|||
h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicy)
|
||||
h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicyList)
|
||||
|
||||
clusterColumnDefinitions := []metav1alpha1.TableColumnDefinition{
|
||||
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
||||
{Name: "Status", Type: "string", Description: "Status of the cluster"},
|
||||
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
|
||||
{Name: "Labels", Type: "string", Description: "The labels of the cluster"},
|
||||
}
|
||||
h.TableHandler(clusterColumnDefinitions, printCluster)
|
||||
h.TableHandler(clusterColumnDefinitions, printClusterList)
|
||||
|
||||
networkPolicyColumnDefinitioins := []metav1alpha1.TableColumnDefinition{
|
||||
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
||||
{Name: "Pod-Selector", Type: "string", Description: extensionsv1beta1.NetworkPolicySpec{}.SwaggerDoc()["podSelector"]},
|
||||
|
@ -748,41 +738,6 @@ func printReplicaSetList(list *extensions.ReplicaSetList, options printers.Print
|
|||
return rows, nil
|
||||
}
|
||||
|
||||
func printCluster(obj *federation.Cluster, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) {
|
||||
row := metav1alpha1.TableRow{
|
||||
Object: runtime.RawExtension{Object: obj},
|
||||
}
|
||||
|
||||
var statuses []string
|
||||
for _, condition := range obj.Status.Conditions {
|
||||
if condition.Status == api.ConditionTrue {
|
||||
statuses = append(statuses, string(condition.Type))
|
||||
} else {
|
||||
statuses = append(statuses, "Not"+string(condition.Type))
|
||||
}
|
||||
}
|
||||
if len(statuses) == 0 {
|
||||
statuses = append(statuses, "Unknown")
|
||||
}
|
||||
row.Cells = append(row.Cells, obj.Name, strings.Join(statuses, ","), translateTimestamp(obj.CreationTimestamp))
|
||||
if options.ShowLabels {
|
||||
row.Cells = append(row.Cells, labels.FormatLabels(obj.Labels))
|
||||
}
|
||||
return []metav1alpha1.TableRow{row}, nil
|
||||
}
|
||||
|
||||
func printClusterList(list *federation.ClusterList, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) {
|
||||
rows := make([]metav1alpha1.TableRow, 0, len(list.Items))
|
||||
for i := range list.Items {
|
||||
r, err := printCluster(&list.Items[i], options)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rows = append(rows, r...)
|
||||
}
|
||||
return rows, nil
|
||||
}
|
||||
|
||||
func printJob(obj *batch.Job, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) {
|
||||
row := metav1alpha1.TableRow{
|
||||
Object: runtime.RawExtension{Object: obj},
|
||||
|
|
|
@ -41,7 +41,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/util/diff"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/kubernetes/federation/apis/federation"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
|
@ -3134,124 +3133,3 @@ func TestPrintStorageClass(t *testing.T) {
|
|||
buf.Reset()
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrintCluster(t *testing.T) {
|
||||
tests := []struct {
|
||||
cluster federation.Cluster
|
||||
expect []metav1alpha1.TableRow
|
||||
showLabels bool
|
||||
}{
|
||||
{
|
||||
federation.Cluster{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "cluster1",
|
||||
CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)},
|
||||
},
|
||||
},
|
||||
[]metav1alpha1.TableRow{{Cells: []interface{}{"cluster1", "Unknown", "0s"}}},
|
||||
false,
|
||||
},
|
||||
{
|
||||
federation.Cluster{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "cluster2",
|
||||
CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)},
|
||||
Labels: map[string]string{"label1": "", "label2": "cluster"},
|
||||
},
|
||||
Status: federation.ClusterStatus{
|
||||
Conditions: []federation.ClusterCondition{
|
||||
{
|
||||
Status: api.ConditionTrue,
|
||||
Type: federation.ClusterReady,
|
||||
},
|
||||
{
|
||||
Status: api.ConditionFalse,
|
||||
Type: federation.ClusterOffline,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
[]metav1alpha1.TableRow{{Cells: []interface{}{"cluster2", "Ready,NotOffline", "0s", "label1=,label2=cluster"}}},
|
||||
true,
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
rows, err := printCluster(&test.cluster, printers.PrintOptions{ShowLabels: test.showLabels})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for i := range rows {
|
||||
rows[i].Object.Object = nil
|
||||
}
|
||||
if !reflect.DeepEqual(test.expect, rows) {
|
||||
t.Errorf("%d mismatch: %s", i, diff.ObjectReflectDiff(test.expect, rows))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrintClusterList(t *testing.T) {
|
||||
tests := []struct {
|
||||
clusters federation.ClusterList
|
||||
expect []metav1alpha1.TableRow
|
||||
showLabels bool
|
||||
}{
|
||||
// Test podList's pod: name, num of containers, restarts, container ready status
|
||||
{
|
||||
federation.ClusterList{
|
||||
Items: []federation.Cluster{
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "cluster1",
|
||||
CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)},
|
||||
},
|
||||
Status: federation.ClusterStatus{
|
||||
Conditions: []federation.ClusterCondition{
|
||||
{
|
||||
Status: api.ConditionTrue,
|
||||
Type: federation.ClusterReady,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "cluster2",
|
||||
CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)},
|
||||
Labels: map[string]string{"label1": "", "label2": "cluster2"},
|
||||
},
|
||||
Status: federation.ClusterStatus{
|
||||
Conditions: []federation.ClusterCondition{
|
||||
{
|
||||
Status: api.ConditionTrue,
|
||||
Type: federation.ClusterReady,
|
||||
},
|
||||
{
|
||||
Status: api.ConditionFalse,
|
||||
Type: federation.ClusterOffline,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
[]metav1alpha1.TableRow{{Cells: []interface{}{"cluster1", "Ready", "0s", "<none>"}},
|
||||
{Cells: []interface{}{"cluster2", "Ready,NotOffline", "0s", "label1=,label2=cluster2"}}},
|
||||
true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
rows, err := printClusterList(&test.clusters, printers.PrintOptions{ShowLabels: test.showLabels})
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for i := range rows {
|
||||
rows[i].Object.Object = nil
|
||||
}
|
||||
if !reflect.DeepEqual(test.expect, rows) {
|
||||
t.Errorf("mismatch: %s", diff.ObjectReflectDiff(test.expect, rows))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,6 @@ go_library(
|
|||
],
|
||||
importpath = "k8s.io/kubernetes/test/e2e",
|
||||
deps = [
|
||||
"//federation/test/e2e:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
"//pkg/api/v1/pod:go_default_library",
|
||||
|
|
|
@ -35,9 +35,8 @@ import (
|
|||
type Suite string
|
||||
|
||||
const (
|
||||
E2E Suite = "e2e"
|
||||
NodeE2E Suite = "node e2e"
|
||||
FederationE2E Suite = "federation e2e"
|
||||
E2E Suite = "e2e"
|
||||
NodeE2E Suite = "node e2e"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -34,7 +34,6 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtimeutils "k8s.io/apimachinery/pkg/util/runtime"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
federationtest "k8s.io/kubernetes/federation/test/e2e"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/azure"
|
||||
gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
||||
"k8s.io/kubernetes/pkg/kubectl/util/logs"
|
||||
|
@ -161,7 +160,6 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte {
|
|||
metav1.NamespaceSystem,
|
||||
metav1.NamespaceDefault,
|
||||
metav1.NamespacePublic,
|
||||
framework.FederationSystemNamespace(),
|
||||
})
|
||||
if err != nil {
|
||||
framework.Failf("Error deleting orphaned namespaces: %v", err)
|
||||
|
@ -239,9 +237,6 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte {
|
|||
// Reference common test to make the import valid.
|
||||
commontest.CurrentSuite = commontest.E2E
|
||||
|
||||
// Reference federation test to make the import valid.
|
||||
federationtest.FederationSuite = commontest.FederationE2E
|
||||
|
||||
return nil
|
||||
|
||||
}, func(data []byte) {
|
||||
|
|
|
@ -12,7 +12,6 @@ go_library(
|
|||
"cleanup.go",
|
||||
"deployment_util.go",
|
||||
"exec_util.go",
|
||||
"federation_util.go",
|
||||
"firewall_util.go",
|
||||
"framework.go",
|
||||
"get-kubemark-resource-usage.go",
|
||||
|
@ -41,7 +40,6 @@ go_library(
|
|||
],
|
||||
importpath = "k8s.io/kubernetes/test/e2e/framework",
|
||||
deps = [
|
||||
"//federation/apis/federation/v1beta1:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
package framework
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||
)
|
||||
|
||||
// FederationSystemNamespace returns the namespace in which
|
||||
// the federation system components are hosted.
|
||||
func FederationSystemNamespace() string {
|
||||
federationNS := os.Getenv("FEDERATION_NAMESPACE")
|
||||
if federationNS != "" {
|
||||
return federationNS
|
||||
}
|
||||
return federationapi.FederationNamespaceSystem
|
||||
}
|
|
@ -102,12 +102,6 @@ type TestContextType struct {
|
|||
FeatureGates string
|
||||
// Node e2e specific test context
|
||||
NodeTestContextType
|
||||
// Federation e2e context
|
||||
FederatedKubeContext string
|
||||
// Federation control plane version to upgrade to while doing upgrade tests
|
||||
FederationUpgradeTarget string
|
||||
// Whether configuration for accessing federation member clusters should be sourced from the host cluster
|
||||
FederationConfigFromCluster bool
|
||||
|
||||
// Indicates what path the kubernetes-anywhere is installed on
|
||||
KubernetesAnywherePath string
|
||||
|
@ -217,8 +211,6 @@ func RegisterClusterFlags() {
|
|||
flag.StringVar(&TestContext.KubemarkExternalKubeConfig, fmt.Sprintf("%s-%s", "kubemark-external", clientcmd.RecommendedConfigPathFlag), "", "Path to kubeconfig containing embedded authinfo for external cluster.")
|
||||
flag.StringVar(&TestContext.KubeContext, clientcmd.FlagContext, "", "kubeconfig context to use/override. If unset, will use value from 'current-context'")
|
||||
flag.StringVar(&TestContext.KubeAPIContentType, "kube-api-content-type", "application/vnd.kubernetes.protobuf", "ContentType used to communicate with apiserver")
|
||||
flag.StringVar(&TestContext.FederatedKubeContext, "federated-kube-context", "e2e-federation", "kubeconfig context for federation.")
|
||||
flag.BoolVar(&TestContext.FederationConfigFromCluster, "federation-config-from-cluster", false, "whether to source configuration for member clusters from the hosting cluster.")
|
||||
|
||||
flag.StringVar(&TestContext.KubeVolumeDir, "volume-dir", "/var/lib/kubelet", "Path to the directory containing the kubelet volumes.")
|
||||
flag.StringVar(&TestContext.CertDir, "cert-dir", "", "Path to the directory containing the certs. Default is empty, which doesn't use certs.")
|
||||
|
@ -256,7 +248,6 @@ func RegisterClusterFlags() {
|
|||
flag.StringVar(&TestContext.EtcdUpgradeVersion, "etcd-upgrade-version", "", "The etcd binary version to upgrade to (e.g., '3.0.14', '2.3.7') if doing an etcd upgrade test.")
|
||||
flag.StringVar(&TestContext.UpgradeImage, "upgrade-image", "", "Image to upgrade to (e.g. 'container_vm' or 'gci') if doing an upgrade test.")
|
||||
flag.StringVar(&TestContext.GCEUpgradeScript, "gce-upgrade-script", "", "Script to use to upgrade a GCE cluster.")
|
||||
flag.StringVar(&TestContext.FederationUpgradeTarget, "federation-upgrade-target", "ci/latest", "Version to upgrade to (e.g. 'release/stable', 'release/latest', 'ci/latest', '0.19.1', '0.19.1-669-gabac8c8') if doing an federation upgrade test.")
|
||||
flag.BoolVar(&TestContext.CleanStart, "clean-start", false, "If true, purge all namespaces except default and system before running tests. This serves to Cleanup test namespaces from failed/interrupted e2e runs in a long-lived cluster.")
|
||||
flag.BoolVar(&TestContext.GarbageCollectorEnabled, "garbage-collector-enabled", true, "Set to true if the garbage collector is enabled in the kube-apiserver and kube-controller-manager, then some tests will rely on the garbage collector to delete dependent resources.")
|
||||
}
|
||||
|
|
|
@ -378,9 +378,6 @@ var etcdStorageData = map[schema.GroupVersionResource]struct {
|
|||
// Be very careful when whitelisting an object as ephemeral.
|
||||
// Doing so removes the safety we gain from this test by skipping that object.
|
||||
var ephemeralWhiteList = createEphemeralWhiteList(
|
||||
// k8s.io/kubernetes/federation/apis/federation/v1beta1
|
||||
gvr("federation", "v1beta1", "clusters"), // we cannot create this
|
||||
// --
|
||||
|
||||
// k8s.io/kubernetes/pkg/api/v1
|
||||
gvr("", "v1", "bindings"), // annotation on pod, not stored in etcd
|
||||
|
|
|
@ -145,48 +145,6 @@ EmptyDir wrapper volumes should not conflict,deads2k,1,node
|
|||
Etcd failure should recover from SIGKILL,pmorie,1,api-machinery
|
||||
Etcd failure should recover from network partition with master,justinsb,1,api-machinery
|
||||
Events should be sent by kubelets and the scheduler about pods scheduling and running,zmerlynn,1,node
|
||||
Federated ReplicaSet Features CRUD should be deleted from underlying clusters when OrphanDependents is false,perotinus,0,federation
|
||||
Federated ReplicaSet Features CRUD should create and update matching replicasets in underlying clusters,perotinus,0,federation
|
||||
Federated ReplicaSet Features CRUD should not be deleted from underlying clusters when OrphanDependents is nil,perotinus,0,federation
|
||||
Federated ReplicaSet Features CRUD should not be deleted from underlying clusters when OrphanDependents is true,perotinus,0,federation
|
||||
Federated ReplicaSet Features Preferences should create replicasets with max replicas preference,perotinus,0,federation
|
||||
Federated ReplicaSet Features Preferences should create replicasets with min replicas preference,perotinus,0,federation
|
||||
Federated ReplicaSet Features Preferences should create replicasets with weight preference,perotinus,0,federation
|
||||
Federated ReplicaSet ReplicaSet objects should be created and deleted successfully,perotinus,0,federation
|
||||
Federated Services Without Clusters should succeed when a service is created,shashidharatd,0,federation
|
||||
Federated Services with clusters DNS non-local federated service missing local service should never find DNS entries for a missing local service,shashidharatd,0,federation
|
||||
Federated Services with clusters DNS should be able to discover a federated service,shashidharatd,0,federation
|
||||
Federated Services with clusters Federated Service should be deleted from underlying clusters when OrphanDependents is false,shashidharatd,0,federation
|
||||
Federated Services with clusters Federated Service should create and update matching services in underlying clusters,shashidharatd,0,federation
|
||||
Federated Services with clusters Federated Service should not be deleted from underlying clusters when OrphanDependents is nil,shashidharatd,0,federation
|
||||
Federated Services with clusters Federated Service should not be deleted from underlying clusters when OrphanDependents is true,shashidharatd,0,federation
|
||||
Federated Services with clusters Federated Service should recreate service shard in underlying clusters when service shard is deleted,shashidharatd,0,federation
|
||||
Federated ingresses Federated Ingresses should be created and deleted successfully,madhusudancs,0,federation
|
||||
Federated ingresses Federated Ingresses should be deleted from underlying clusters when OrphanDependents is false,madhusudancs,0,federation
|
||||
Federated ingresses Federated Ingresses should create and update matching ingresses in underlying clusters,madhusudancs,0,federation
|
||||
Federated ingresses Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil,madhusudancs,0,federation
|
||||
Federated ingresses Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true,madhusudancs,0,federation
|
||||
"Federated types Federated %q resources should be created, read, updated and deleted successfully",marun,0,federation
|
||||
Federation API server authentication should accept cluster resources when the client has HTTP Basic authentication credentials,nikhiljindal,0,federation
|
||||
Federation API server authentication should accept cluster resources when the client has certificate authentication credentials,nikhiljindal,0,federation
|
||||
Federation API server authentication should accept cluster resources when the client has token authentication credentials,nikhiljindal,0,federation
|
||||
Federation API server authentication should not accept cluster resources when the client has invalid HTTP Basic authentication credentials,nikhiljindal,0,federation
|
||||
Federation API server authentication should not accept cluster resources when the client has invalid token authentication credentials,nikhiljindal,0,federation
|
||||
Federation API server authentication should not accept cluster resources when the client has no authentication credentials,nikhiljindal,0,federation
|
||||
Federation apiserver Admission control should not be able to create resources if namespace does not exist,nikhiljindal,0,federation
|
||||
Federation apiserver Cluster objects should be created and deleted successfully,nikhiljindal,0,federation
|
||||
Federation deployments Deployment objects should be created and deleted successfully,nikhiljindal,0,federation
|
||||
Federation deployments Federated Deployment should be deleted from underlying clusters when OrphanDependents is false,nikhiljindal,0,federation
|
||||
Federation deployments Federated Deployment should create and update matching deployments in underlying clusters,nikhiljindal,0,federation
|
||||
Federation deployments Federated Deployment should not be deleted from underlying clusters when OrphanDependents is nil,nikhiljindal,0,federation
|
||||
Federation deployments Federated Deployment should not be deleted from underlying clusters when OrphanDependents is true,nikhiljindal,0,federation
|
||||
Federation events Event objects should be created and deleted successfully,shashidharatd,0,federation
|
||||
Federation namespace Namespace objects all resources in the namespace should be deleted when namespace is deleted,nikhiljindal,0,federation
|
||||
Federation namespace Namespace objects deletes replicasets in the namespace when the namespace is deleted,nikhiljindal,0,federation
|
||||
Federation namespace Namespace objects should be created and deleted successfully,nikhiljindal,0,federation
|
||||
Federation namespace Namespace objects should be deleted from underlying clusters when OrphanDependents is false,nikhiljindal,0,federation
|
||||
Federation namespace Namespace objects should not be deleted from underlying clusters when OrphanDependents is nil,nikhiljindal,0,federation
|
||||
Federation namespace Namespace objects should not be deleted from underlying clusters when OrphanDependents is true,nikhiljindal,0,federation
|
||||
Firewall rule should create valid firewall rules for LoadBalancer type service,MrHohn,0,network
|
||||
Firewall rule should have correct firewall rules for e2e cluster,MrHohn,0,network
|
||||
GCP Volumes GlusterFS should be mountable,nikhiljindal,0,storage
|
||||
|
@ -587,27 +545,6 @@ k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types,caesarxuchao,0,
|
|||
k8s.io/kubernetes/cmd/libs/go2idl/go-to-protobuf/protobuf,smarterclayton,0,
|
||||
k8s.io/kubernetes/cmd/libs/go2idl/openapi-gen/generators,davidopp,1,
|
||||
k8s.io/kubernetes/examples,Random-Liu,0,
|
||||
k8s.io/kubernetes/federation/apis/federation/install,nikhiljindal,0,
|
||||
k8s.io/kubernetes/federation/apis/federation/validation,nikhiljindal,0,
|
||||
k8s.io/kubernetes/federation/cmd/federation-controller-manager/app,kzwang,0,
|
||||
k8s.io/kubernetes/federation/pkg/dnsprovider,sttts,1,
|
||||
k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53,cjcullen,1,
|
||||
k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns,brendandburns,0,
|
||||
k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns,madhusudancs,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/cluster,nikhiljindal,0,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/deployment,zmerlynn,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/ingress,vishh,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/replicaset,roberthbailey,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/secret,apelisse,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/service,pmorie,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/util,bgrant0607,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink,luxas,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/util/planner,Q-Lee,1,
|
||||
k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer,caesarxuchao,1,
|
||||
k8s.io/kubernetes/federation/pkg/kubefed,madhusudancs,0,
|
||||
k8s.io/kubernetes/federation/pkg/kubefed/init,madhusudancs,0,
|
||||
k8s.io/kubernetes/federation/registry/cluster,nikhiljindal,0,
|
||||
k8s.io/kubernetes/federation/registry/cluster/etcd,nikhiljindal,0,
|
||||
k8s.io/kubernetes/hack,thockin,1,
|
||||
k8s.io/kubernetes/hack/cmd/teststale,thockin,1,
|
||||
k8s.io/kubernetes/pkg/api,Q-Lee,1,
|
||||
|
@ -944,7 +881,6 @@ k8s.io/kubernetes/test/integration/client,Q-Lee,1,
|
|||
k8s.io/kubernetes/test/integration/configmap,Q-Lee,1,
|
||||
k8s.io/kubernetes/test/integration/evictions,brendandburns,0,
|
||||
k8s.io/kubernetes/test/integration/examples,maisem,1,
|
||||
k8s.io/kubernetes/test/integration/federation,rrati,0,
|
||||
k8s.io/kubernetes/test/integration/garbagecollector,jlowdermilk,1,
|
||||
k8s.io/kubernetes/test/integration/kubeaggregator,deads2k,1,
|
||||
k8s.io/kubernetes/test/integration/kubectl,rrati,0,
|
||||
|
|
|
|
@ -1,122 +1,118 @@
|
|||
{
|
||||
"api-machinery": [
|
||||
"Etcd",
|
||||
"Generated",
|
||||
"HA-master",
|
||||
"Multi-AZ",
|
||||
"Namespaces",
|
||||
"ResourceQuota",
|
||||
"Staging",
|
||||
"Summary",
|
||||
"Etcd",
|
||||
"Generated",
|
||||
"HA-master",
|
||||
"Multi-AZ",
|
||||
"Namespaces",
|
||||
"ResourceQuota",
|
||||
"Staging",
|
||||
"Summary",
|
||||
"ThirdParty"
|
||||
],
|
||||
],
|
||||
"apps": [
|
||||
"Cassandra",
|
||||
"ConfigMap",
|
||||
"CronJob",
|
||||
"Daemon",
|
||||
"Deployment",
|
||||
"Job",
|
||||
"Mesos",
|
||||
"Pet",
|
||||
"Redis",
|
||||
"ReplicaSet",
|
||||
"ReplicationController",
|
||||
"Rescheduler",
|
||||
"RethinkDB",
|
||||
"Secret",
|
||||
"Security",
|
||||
"Spark",
|
||||
"StatefulSet",
|
||||
"Cassandra",
|
||||
"ConfigMap",
|
||||
"CronJob",
|
||||
"Daemon",
|
||||
"Deployment",
|
||||
"Job",
|
||||
"Mesos",
|
||||
"Pet",
|
||||
"Redis",
|
||||
"ReplicaSet",
|
||||
"ReplicationController",
|
||||
"Rescheduler",
|
||||
"RethinkDB",
|
||||
"Secret",
|
||||
"Security",
|
||||
"Spark",
|
||||
"StatefulSet",
|
||||
"Storm"
|
||||
],
|
||||
],
|
||||
"autoscaling": [
|
||||
"Cluster size",
|
||||
"Cluster size",
|
||||
"Horizontal"
|
||||
],
|
||||
],
|
||||
"big-data": [
|
||||
"Hazelcast"
|
||||
],
|
||||
],
|
||||
"cli": [
|
||||
"Kubectl"
|
||||
],
|
||||
],
|
||||
"cluster-lifecycle": [
|
||||
"GKE node",
|
||||
"Garbage",
|
||||
"Nodes",
|
||||
"GKE node",
|
||||
"Garbage",
|
||||
"Nodes",
|
||||
"Upgrade"
|
||||
],
|
||||
"federation": [
|
||||
"Federated",
|
||||
"Federation"
|
||||
],
|
||||
],
|
||||
"instrumentation": [
|
||||
"Cluster level",
|
||||
"Kibana",
|
||||
"MetricsGrabber",
|
||||
"Cluster level",
|
||||
"Kibana",
|
||||
"MetricsGrabber",
|
||||
"Monitoring"
|
||||
],
|
||||
],
|
||||
"network": [
|
||||
"ClusterDns",
|
||||
"DNS",
|
||||
"ESIPP",
|
||||
"Firewall",
|
||||
"Load",
|
||||
"Network",
|
||||
"ClusterDns",
|
||||
"DNS",
|
||||
"ESIPP",
|
||||
"Firewall",
|
||||
"Load",
|
||||
"Network",
|
||||
"Service"
|
||||
],
|
||||
],
|
||||
"node": [
|
||||
"AppArmor",
|
||||
"Cadvisor",
|
||||
"Container",
|
||||
"Docker",
|
||||
"Downward",
|
||||
"EmptyDir",
|
||||
"Events",
|
||||
"HostPath",
|
||||
"ImageID",
|
||||
"InitContainer",
|
||||
"Initial",
|
||||
"Kubelet",
|
||||
"LimitRange",
|
||||
"Liveness",
|
||||
"Logging",
|
||||
"MemoryEviction",
|
||||
"MirrorPod",
|
||||
"NodeProblemDetector",
|
||||
"Opaque",
|
||||
"Pod garbage",
|
||||
"Pods",
|
||||
"Port",
|
||||
"PreStop",
|
||||
"PrivilegedPod",
|
||||
"Probing",
|
||||
"Proxy",
|
||||
"Reboot",
|
||||
"Restart",
|
||||
"SimpleMount",
|
||||
"Sysctls",
|
||||
"Variable",
|
||||
"kubelet",
|
||||
"AppArmor",
|
||||
"Cadvisor",
|
||||
"Container",
|
||||
"Docker",
|
||||
"Downward",
|
||||
"EmptyDir",
|
||||
"Events",
|
||||
"HostPath",
|
||||
"ImageID",
|
||||
"InitContainer",
|
||||
"Initial",
|
||||
"Kubelet",
|
||||
"LimitRange",
|
||||
"Liveness",
|
||||
"Logging",
|
||||
"MemoryEviction",
|
||||
"MirrorPod",
|
||||
"NodeProblemDetector",
|
||||
"Opaque",
|
||||
"Pod garbage",
|
||||
"Pods",
|
||||
"Port",
|
||||
"PreStop",
|
||||
"PrivilegedPod",
|
||||
"Probing",
|
||||
"Proxy",
|
||||
"Reboot",
|
||||
"Restart",
|
||||
"SimpleMount",
|
||||
"Sysctls",
|
||||
"Variable",
|
||||
"kubelet",
|
||||
"when"
|
||||
],
|
||||
],
|
||||
"scalability": [
|
||||
"Density"
|
||||
],
|
||||
],
|
||||
"scheduling": [
|
||||
"DisruptionController",
|
||||
"NoExecuteTaintManager",
|
||||
"DisruptionController",
|
||||
"NoExecuteTaintManager",
|
||||
"SchedulerPredicates"
|
||||
],
|
||||
],
|
||||
"storage": [
|
||||
"Dynamic",
|
||||
"GCP",
|
||||
"GKE local",
|
||||
"PersistentVolumes",
|
||||
"Pod Disks",
|
||||
"Projected",
|
||||
"Dynamic",
|
||||
"GCP",
|
||||
"GKE local",
|
||||
"PersistentVolumes",
|
||||
"Pod Disks",
|
||||
"Projected",
|
||||
"Volume"
|
||||
],
|
||||
],
|
||||
"ui": [
|
||||
"Kubernetes"
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue